我的localhost UDP协议缺少数据丢失的可能原因?

时间:2015-10-14 19:08:56

标签: c network-programming udp data-loss

我刚刚实现了我的第一个UDP服务器/客户端。服务器位于localhost上。 我正在从客户端向服务器发送64kb的数据,服务器应该将其发回。然后,客户端检查64kb中有多少仍然完好无损,而且它们都是。总是。 这种行为的可能原因是什么?我至少期待-some- dataloss。

客户端代码:http://pastebin.com/5HLkfcqS 服务器代码:http://pastebin.com/YrhfJAGb

PS:网络编程的新手,所以请不要太苛刻。我无法找到问题的答案。

1 个答案:

答案 0 :(得分:3)

您没有看到任何丢失的数据报的原因是您的网络堆栈没有遇到任何麻烦。 您的localhost连接可以轻松应对您提供的内容,本地主机连接可以在一个不错的CPU上每秒处理几个100兆字节的数据。

要查看丢弃的数据报,您应该增加干扰的可能性。你有几个机会:

  • 增加网络负载
  • 忙着你的cpu和其他任务
  • 使用"真实"网络和在真机之间传输数据
  • 通过dsl行运行代码
  • 设置虚拟机并模拟网络中断(Vmware Workstation可以这样做)

这可能是一个有趣的读物:What would cause UDP packets to be dropped when being sent to localhost?