在队列中或每个收到的数据包上处理 UDP 数据包
本文关键字:数据包 处理 UDP 队列 | 更新日期: 2023-09-27 18:35:42
>我有一个UDP"服务器"来接收UDP数据包并处理它们。
我现在实现它的方式是,每当我收到数据包时,我都会引发一个事件,并在某个线程池线程上处理每个数据包。处理相当简单,我怀疑它比数据包传入的速度快得多。
我现在有另一个应用程序,其中数据包的速率可以更高,我想知道一般来说是否有一个数据包队列,并以更批量的方式处理数据包,而不是在每次接收时引发事件。
你对这件事有什么想法吗?
好吧,
如果您期望有很多数据包,那么在新线程中处理每个数据包可能不是一个非常好的选择。您可以制作生产者/消费者系统。您的UDP数据包接收模块将是生产者,它将产生数据包(在某种队列中推送),然后您可以让一个读取数据包并处理它的消费者。这将是更快、更具可扩展性的选项,您可以运行多个使用者线程来处理数据包。
如果可以的话,最好以批量方式处理数据包。