gpt4 book ai didi

java - java 中的 setsotimeout

转载 作者:行者123 更新时间:2023-12-01 17:37:20 25 4
gpt4 key购买 nike

我正在尝试通过 DatagramSocket 发送数据,并且希望这样做,如果发送的数据超出了其确认超时,则应该重新发送。

我们可以使用 DatagramSocket.SetSoTimeout 选项吗?如果是的话我该怎么办??

例如

try
{
while(true)
{
socket.send(data);
}
}catch (SocketTimeoutException e)
{
// resend for which it occured
}

这可能吗?

最佳答案

文档似乎很清楚 setSoTimeout 的目的:

a call to receive() for this DatagramSocket will block for only this amount of time

首先它与send没有任何关系,其次它只有在阻塞一段时间后才会超时。

如果您想要可靠性,请使用 TCP。如果您绝对需要/想要使用 UDP,则必须设计自己的可靠性机制。这是关于这个特定问题的另一个问题:

What do you use when you need reliable UDP?

基本上,这实际上取决于您正在做什么,因为如果您需要通用解决方案,您最终将重新发明 TCP!

关于java - java 中的 setsotimeout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4985208/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com