首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

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

2012-01-28 
UDP里的DatagramPacket 对象的疑问在服务器端一般都是死循环 来监听一个端口。也是就 Java codewhile (isRu

UDP里的DatagramPacket 对象的疑问
在服务器端一般都是死循环 来监听一个端口。也是就

Java code
while (isRunning) {     datagramSocket.receive(packet);                          } 

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

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

热点排行