【问题标题】: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。这就是我在这里问的原因。
  • 其他人已经让这个工作了,看看这个帖子:stackoverflow.com/questions/2408212/…
【解决方案2】:

我不知道这是否有帮助,但看起来UdpClient 允许您提供自己的Socket。在内部,UdpClient 使用以下语句创建 Socket:

new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);

在Connect() 中,它检查Client 是否已经设置,如果是,则使用Socket 连接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-17
    • 2011-08-06
    • 1970-01-01
    • 2020-05-23
    • 1970-01-01
    • 2012-07-26
    • 2017-01-06
    • 2020-07-11
    相关资源
    最近更新 更多