Java-在接收UDP数据包时设置tiimeout函数java

问题描述:

我试图发送UDP数据包,然后等待从服务器返回响应2秒。如果我的套接字在这段时间内没有收到来自服务器的数据包,那么我将不得不再次发回相同的数据包。我希望程序在发送5后停止发送数据包,然后声明服务器已关闭。Java-在接收UDP数据包时设置tiimeout函数java

这里是我有什么,但我不断收到错误:在线程“主要” 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