[英]Why my java UDP socket is not receiving all packets?
MyQueue<DatagramPacket> queue;
while(true){
udpSocket.receive(receivePacket);
putReceviedPacketToQueue(receivePacket);
}
我有一台UDP服务器,它接受UDP数据包并将其放入我的自定义实现的Queue之类的数据结构中,该数据结构主要存储这些DatagramPackets。 此数据结构的插入和删除方法是同步的。
有100个不同的线程来处理这些DatagramPackets。 他们从MyQueue同步删除DatagramPacket,然后独立处理该Datagram数据包。
因此,总共我有101个线程1用于接收UDP数据包,另外100个线程用于处理它们。
我的问题是:
我正在测试此AWS服务器,并且我的服务器已升级到足以处理每秒2000个UDP数据包。
我想知道可能是什么问题。 我的MyQueue插入和删除工具是否花费了太多时间,或者我的100个处理线程导致了问题,或者一个线程无法接收2000个数据包/秒?
由于UDP是不可靠的传输方式,而且还因为如果要入队DatagramPackets
,则每个receive()
将需要一个新的,否则,接收将覆盖前一个。 还有一个新的基础byte[]
数组。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.