在服务器端一般都是死循环 来监听一个端口。也是就
- Java code
while (isRunning) { datagramSocket.receive(packet); }
receive(packet) 这个方法是阻塞式的。我的疑问就是,当我接受到客户端发送过来的数据,并放在packet里后,然后我把这个DatagramPacket 对象 拿去处理的时候, 同时又有一个数据包过来,会不会第二次来的数据把第一次来的数据给覆盖了,从而造成 当我在使用第一次的DatagramPacket对象的时候,造成数据错误呢!
------解决方案--------------------
如果不启动线程处理,那么只有当下一次receive时才会JVM才会将第二个数据包的数据放入packet中。所以不存在覆盖问题。但是如果你启动线程对packet处理,主线程还调用receive则会覆盖