gpt4 book ai didi

Java-接收UDP包时设置一个tiimeout函数java

转载 作者:行者123 更新时间:2023-12-02 04:13:47 25 4
gpt4 key购买 nike

我正在尝试发送 UDP 数据包,然后等待服务器返回响应 2 秒。如果我的套接字此时没有收到从服务器返回的数据包,那么我将不得不再次发送相同的数据包。我希望程序在发送了5个数据包后停止发送数据包,然后声明服务器已关闭。

这是我所拥有的,但我不断收到错误:

线程“main”中出现异常 java.net.SocketTimeoutException:接收超时

    clientSock.send(UDP_Packet);
int count=0;
while(count <5){
try{
clientSock.recieve(incomingPacket);
clientSock.setSoTimeout(2000);
} catch (SocketException e) {
clientSock.send(UDP_Packet);
count++;
if(count>=5){
System.out.println("Server is Down");
}
}
}

有人可以告诉我我在这里做错了什么或者如何实现它吗?

感谢您的宝贵时间

最佳答案

好吧,您需要在接收之前设置超时,而不是之后,但主要问题是您捕获了错误的异常。您应该捕获SocketTimeoutException

关于Java-接收UDP包时设置一个tiimeout函数java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33534774/

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