UDP包是会丢失的
可能你前一个在传输中丢失了
而后一个则收到了。

解决方案 »

  1.   

    kekan(小邪),大哥,不懂就不要瞎说。如果是因为UDP丢失我会来这问问题吗?那么不动脑子的人我还是第一次发现。
      

  2.   

    看看这个吧
    我试这个是正常的
    import java.net.*;
    public class SimpleUDPExample {  public static void main(String[] main) 
        throws UnknownHostException, SocketException, java.io.IOException {
        int port = 5264; 
        DatagramSocket socket = new DatagramSocket(port);
        socket.setSoTimeout(5000);
        
        String outMessage="";
        byte[] data=new byte[1024];;
        DatagramPacket packet;
        
        for(int i=0;i<10;i++)
        {
         outMessage= "Hello UDP world!"+i;
         data= outMessage.getBytes();
         packet=new DatagramPacket(data, data.length, InetAddress.getByName("localhost"), port);
         System.out.println("Sending message: " + outMessage);
         socket.send(packet);
    }
    packet=new DatagramPacket(data, data.length, InetAddress.getByName("localhost"), port);

        packet.setData(new byte[512]);
        packet.setLength(512);
        
        System.out.println("");
        System.out.println("Waiting for datagram ...");
        int i=0;
        while(true)
        {
        socket.receive(packet);
        String inMessage = new String(packet.getData(), 0, packet.getLength());
        System.out.println("Received message: " + inMessage);
        if(i++>20)
        {
         System.out.println("ok");
         break;
        }
     }    socket.close();
      }
    }