【问题标题】:Java-Setting a tiimeout function when receiving a UDP packet javajava-接收UDP包时设置超时函数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");
            }
        }
    }

谁能告诉我我在这里做错了什么或如何实现它?

感谢您的宝贵时间

【问题讨论】:

    标签: java network-programming udp timeoutexception


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2015-12-29
      • 2012-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-14
      • 1970-01-01
      相关资源
      最近更新 更多