2

我有两台机器 A1 和 A2,它们都运行相同的嵌入式代码,它们广播数据包。第三台机器 B3 是一个运行 C# (.NET 4.0) 应用程序的 Windows XP 机器,它监听这些广播。

来自 A1 的所有数据都按预期由 C# 接收,来自 A2 的 95% 的数据是通过间歇性的、看似随机的、丢失的 UDP 数据报接收的。

当我在 B3 上查看 wireshark 时,来自两台机器的所有数据包都完全按预期到达,但是当我在收到字节后立即将字节转储到文本文件时,我发现来自 B2 的数据报丢失了。

一个数据包怎么会显示在 Wireshark 上,但有时不会传递给我的 C# 应用程序?我可以理解数据报是否有错误的标头等,但是 Wireshark 会按预期显示所有内容,即使对于这些丢失的内容也是如此。Windows / .NET 是否会执行一些默认情况下 Wireshark 不执行的检查?

4

1 回答 1

0

我建议将 B2 流转储到文件中,然后将其直接重播到您的应用程序(如果可能,使用本地应用程序)。您应该受益于拥有恒定的数据流,以便(希望)缩小有问题的部分。

于 2011-09-23T19:41:32.977 回答