0

我目前在 DatagramSocket 上发送一个 DatagramPacket 并且我接收得很好..问题是我正在接收我发送的数据包。如果我两次拨打接收电话,则超时。有没有办法忽略第一个数据包并接收第二个数据包。

这是我的代码..

            socket = new DatagramSocket(8001);
            socket.setBroadcast(true);
            socket.setReuseAddress(false);
            DatagramPacket packet = new DatagramPacket(databytes, 7,
                getBroadcastAddress(), 8001);
            socket.send(packet);
            String localAddress = socket.getLocalAddress().toString();

            byte[] buf = new byte[1024];
            DatagramPacket receivepacket = new DatagramPacket(buf, buf.length);
            socket.setSoTimeout(5000);

            String temp = "";
            String delims = "[/]";
            while(true)
            {
                try{
                    socket.receive(receivepacket);
                    temp = receivepacket.getAddress().toString();
                    temp = temp.split(delims)[0];

                    if(temp != localAddress)
                    {   

                    }else
                    {
                        m_IPAddress = temp;
                        break;
                    }

                }catch (SocketException e){

                } catch (IOException e){
                    String temp1 = e.toString();
                }
            }
4

1 回答 1

0

检查地址是否绑定到您的接口之一。

于 2010-09-21T01:11:35.863 回答