有价值的社区!
我很好奇如何确保发送到我的应用程序的所有请求都将得到处理。 我有一个应用程序,可以像这样监听udp端口:
while(true)
{
Arrays.fill(receivedData, (byte)0);
receivedPacket = new DatagramPacket(receivedData, receivedData.length);
serverSocket.receive(receivedPacket);
for (udpMessageCollector mc:udpMessageCollectors
) {
mc.udpMessageReceived(receivedPacket);
}
}
}catch (Exception ex){System.out.println(ex.toString());};
如您所见,此类实现Runnable接口,并通过自定义事件将数据传输到其他程序流。流程在增长,此外还必须处理数据库,因此需要花费一些时间才能使流程返回到我的udp侦听器。 我知道,如果在流处理期间会收到一些请求,则会存在一些缓存,它将启动。 但是,我如何确保没有一个请求会被丢弃?或者更好的说,一旦收到请求,如何释放我的udp监听器?只需传输一个datagramPacket并继续收听即可。有可能吗?