我已经为.Net Framework编写了C#可执行文件,该程序将广播的UDP消息发送到本地网络,然后等待响应100毫秒。如果没有收到,则广播消息将再次发送,以防其IP地址未知(实际上,发现其IP是程序的指向)的预期接收者尚未准备好接收它或丢失数据包。
我使用Stopwatch类来实现等待。每次发送广播消息时,我都调用Stopwatch.Restart()(先前已启动Stopwatch),然后在下面的等待循环中,我将Stopwatch.ElapsedMilliseconds与设置为100的int64变量进行了比较。
[在当前版本的Windows 10下的Visual Studio 2019模拟器中调试(安装了所有更新),并且禁用了预期的接收者,Wireshare捕获显示每隔几微秒发送的广播消息。
这是预期的。
尽管VS2019模拟器会产生意外的结果,但是当您生成一个可执行文件并运行它时,运行相同的测试时,您会在Wireshark中看到预期的广播间隔100ms。