0

我的带宽有限 512 Kbps 下载 368 Kbps 上传

我在循环中以10 毫秒的常规间隔发送40 字节的 UDP 数据包

使用Thread.sleep(10)语句。

虽然接收数据包(UDP)的大小可以是 0-1500 字节,并且可以在任何时间以我收到的任何数量出现

频道.receive(); while(true){} 循环中。Channel 处于阻塞模式。

我想我缺少带有此代码的数据包。

如何防止由于下载速度低而导致丢包。

4

1 回答 1

0

如何防止由于下载速度低而导致丢包。

你无法阻止它。即使您有很多带宽,一定程度的数据包丢失也是不可避免的。

如果您打算使用 UDP 作为您的传输,您将不得不设计您的应用程序协议以在面对丢包时具有弹性……并且避免过多的流量淹没您的网络链接。这些都是不小的问题。

一个更简单的替代方案是使用 TCP,并让它处理面对丢包和流量控制问题时的重试。

于 2012-07-20T14:39:59.253 回答