【发布时间】:2011-12-08 23:15:12
【问题描述】:
我有一个 Java 程序,它不断地从外部系统发送 UDP 数据。
定期,我们需要停止接收数据(因为另一台机器正在处理它)。在那些时候,我的套接字读取器线程进入睡眠循环。当开始接收数据包时,我再次进入socket.receive(Packet) 并有一个缓冲区,里面装满了我应该不处理的数据包。 (数据是在“停止时间”时来的。)
有没有办法清除 DatagramSocket 的缓冲区?
如果不是,最好的选择是什么?当我进入等待状态时将缓冲区大小设置为 0 并在我再次开始服务数据包时将其恢复?等待的时候关闭socket,回来的时候打开一个新的?
【问题讨论】: