while(true){  
DatagramPacket packet = new DatagramPacket("Test".getBytes(),4,new InetSocketAddress("192.168.62.170",1243));  
                  
DatagramPacket packet2 = new DatagramPacket("Test".getBytes(),4, new InetSocketAddress("192.168.62.124", 9000));  
  
this.socket.send(packet);  
this.socket.send(packet2);  
  
Thread.sleep(3000);  
}UDP DatagramPacket同时不间断向路由上一层2台主机发包,其中一台只收到一次数据。192.168.62.170 只有第一次能收到 
192.168.62.124 每次都可以收到Debug查看 this.socket.send(packet);每次都调用了 。
求解~谢谢!

解决方案 »

  1.   

    考虑到缓冲区和UDP包可以随意丢弃的问题,只能简单建议用两个 socket 来分别发送试试看。
      

  2.   

    主要是UDP包可以随意丢弃,来自统一端口所发送的包,缓冲窗口不足时优先会被网络中的任何一个交换节点扔掉。增加端口无非是减少被丢弃的概率而已,如果你同时用TCP做满负荷数据传输(来个啥多线程FTP下载之类的),你的UDP包怕是几乎收不到。