【问题标题】:Is it possible to set UdpClient ReceiveBufferSize property in c#?是否可以在 C# 中设置 UdpClient ReceiveBufferSize 属性?
【发布时间】:2010-11-12 19:23:36
【问题描述】:
我想更改 udpclient 的接收缓冲区大小,以防止接收 udp 数据包时缓冲区溢出。是否可以在 c# 中更改它。实际属性是 UdpClient.Client.ReceiveBufferSize。我必须使用其他方法吗?
谢谢。
【问题讨论】:
标签:
c#
udp
overflow
udpclient
【解决方案1】:
您应该能够执行以下操作:
UdpClient client = new UdpClient();
client.Client.ReceiveBufferSize = 4096;
【讨论】:
-
我想我确实提到过我知道 UdpClient.Client.ReceiveBufferSize。从msdn.microsoft.com/en-us/library/… 开始,ReceiveBufferSize 仅用于 tcpclient。我确实在我的 udpclient 中进行了测试,但没有发现任何区别。实际上,我很确定它不适用于 udp。这就是我在这里问的原因。
-
【解决方案2】:
我不知道这是否有帮助,但看起来UdpClient 允许您提供自己的Socket。在内部,UdpClient 使用以下语句创建 Socket:
new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
在Connect() 中,它检查Client 是否已经设置,如果是,则使用Socket 连接。