当前位置: 代码迷 >> J2SE >> UDP里的DatagramPacket 对象的疑问解决办法
  详细解决方案

UDP里的DatagramPacket 对象的疑问解决办法

热度:135   发布时间:2016-04-24 12:28:45.0
UDP里的DatagramPacket 对象的疑问
在服务器端一般都是死循环 来监听一个端口。也是就
Java code
while (isRunning) {     datagramSocket.receive(packet);                          } 

receive(packet) 这个方法是阻塞式的。我的疑问就是,当我接受到客户端发送过来的数据,并放在packet里后,然后我把这个DatagramPacket 对象 拿去处理的时候, 同时又有一个数据包过来,会不会第二次来的数据把第一次来的数据给覆盖了,从而造成 当我在使用第一次的DatagramPacket对象的时候,造成数据错误呢!

------解决方案--------------------
如果不启动线程处理,那么只有当下一次receive时才会JVM才会将第二个数据包的数据放入packet中。所以不存在覆盖问题。但是如果你启动线程对packet处理,主线程还调用receive则会覆盖
  相关解决方案