java-接收UDP包时设置超时函数java
Posted
技术标签:
【中文标题】java-接收UDP包时设置超时函数java【英文标题】:Java-Setting a tiimeout function when receiving a UDP packet java 【发布时间】:2016-02-05 17:02:35 【问题描述】:我正在尝试发送一个 UDP 数据包,然后等待来自服务器的响应 2 秒。如果我的套接字此时没有收到服务器发回的数据包,那么我将不得不再次发送相同的数据包。我希望程序在发送完 5 后停止发送数据包,然后声明服务器已关闭。
这是我所拥有的,但我不断收到错误:
线程“主”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");
谁能告诉我我在这里做错了什么或如何实现它?
感谢您的宝贵时间
【问题讨论】:
【参考方案1】:嗯,您需要在接收之前设置超时,而不是之后,但主要问题是您捕获了错误的异常。你应该正在赶上SocketTimeoutException
。
【讨论】:
以上是关于java-接收UDP包时设置超时函数java的主要内容,如果未能解决你的问题,请参考以下文章