我试图发送一个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");
}
}
}
有人能告诉我,我在这里做错了什么,或者如何实现它吗?
谢谢你抽出时间
您需要在执行接收之前设置超时,而不是在之后,但主要问题是您捕获了错误的异常。您应该捕获