0

我正在编写一个需要从硬件接收多播数据的应用程序。我让它工作正常。有时,在我的应用程序无法控制的情况下,正在广播的硬件会重新启动。我从阅读文档中了解到,该UdpClient.Receive方法将阻塞,直到它接收到数据。所以我假设当硬件重启时,这行代码会阻塞。最终,当硬件重新上线并再次广播时,我的应用程序应该在该行再次启动。这个对吗?我不明白什么吗?我在我的应用程序中看到的是这条线被阻塞并且它永远不会再次启动,即使在硬件重新启动后也是如此。这是一个代码片段。

IPAddress _groupAddress = IPAddress.Parse("172.16.20.1");
UdpClient _client = new UdpClient(7095);
IPEndPoint _ep = new IPEndPoint(_groupAddress, 7095);
_client.JoinMulticastGroup(_groupAddress);
bool _cancelled = false;

while (!_cancelled)
{
    byte[] _bytes = _client.Receive(ref _ep);

    ..process bytes..
}
4

0 回答 0