0

似乎我无法接收消息大于 4096 字节的 UDP 数据包。我在哪里可以更改此限制?

它与操作系统或网络适配器有关吗?

我在我的 Windows Server 2012 R2 上遇到了这个问题,而它在我的 Windows 8.1 电脑上运行良好。

任何提示将不胜感激。

4

2 回答 2

0

根据套接字选项的 Microsoft 文档,有一个SO_MAX_MSG_SIZE选项是“协议支持的面向消息的套接字的最大出站消息大小”。UDP 套接字是“面向消息的套接字”(与“面向流的套接字”相反;TCP 套接字是面向流的)。

这表明操作系统规定了最大消息大小。遗憾的是,该页面在该行的“设置”列中没有SO_MAX_MSG_SIZE说“是” ,因此您的程序无法覆盖该最大值。

于 2015-03-15T20:26:32.780 回答
0

您需要提高发送方的套接字发送缓冲区大小,以及接收方的套接字接收缓冲区大小。然而,普遍接受的 UDP 有效载荷大小的实际限制是 534 字节。除此之外,它们可以被分段,如果一个片段没有到达,整个数据报就会丢失。

于 2015-03-15T01:29:00.010 回答