如何为UDPClient设置ReceiveBufferSize?或者设置是否有意义? C#

时间:2010-03-08 15:30:14

标签: c# sockets buffer udpclient

我正在实现UDP数据传输。我有几个关于UDP缓冲区的问题。

我正在使用UDPClient进行UDP发送/接收。我的宽带带宽是150KB / s(字节/秒,而不是 bps )。

  1. 我向27个主机发送500B数据报

  2. 如果收到的话,27台主机会发回10KB数据报。

  3. 所以,我应该收到27条回复,对吗?但是,我平均只得到了8 - 12.

  4. 然后我尝试将响应的大小减少到500B,是的,我收到了所有。

  5. 我的想法是,如果所有27个主机几乎同时发回10KB响应,则传入流量将为270KB / s(可能),超过我的传入带宽,因此发生丢失。我是对的吗?

    但我认为即使传入的流量超过带宽,Windows是否应该将数据报放入缓冲区并等待接收?

    然后我怀疑我的UdpClient的ReceiveBufferSize可能太小了?默认情况下,它是8092B ??

    我不知道在这些方面我是否可以。请给我一些帮助。

1 个答案:

答案 0 :(得分:0)

UDP协议没有guaratnee传送,如果需要guaratnee数据包传送,则应切换到TCP。

UDP更适合丢失数据包的应用程序,而不是等待数据包找到它的方式。即流媒体或类似的流媒体。

有关详情,请参阅wikipedia