C++,通过UDP IPC接收SOCK_DNOW,大小未知[重复]

mwg9r5ms  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(105)

此问题在此处已有答案

Receive an entire UDP datagram, regardless of size?(1个答案)
4天前关闭。
我需要能够侦听IPC UDP套接字,并接收未知大小的消息(在C++中)。这些消息是用一些动态数组序列化的capnp。
第一个月
如何正确调整接收缓冲区的大小?
我可以检查队列中下一个数据包的消息大小并相应地调整缓冲区大小吗?检查大小(ms或us)的开销是否很大?
作为参考,我希望消息最大为500Kb。

wxclj1h5

wxclj1h51#

作为参考,我希望消息最大为500Kb。
UDP中的最大数据报有效负载大小为65507字节。如果您的应用程序协议有较大的消息,则需要某种方法将这些消息拆分为多个UDP数据报,并在重建消息时处理数据包丢失,重复和重新排序。
我可以检查队列中下一个数据包的消息大小并相应地调整缓冲区大小吗?
您可以简单地使用64k的缓冲区,因为数据报不能更大。

相关问题