当广播公司重新启动时,C#UdpClient.Receive如何工作?

时间:2013-01-04 16:25:02

标签: c# multicast udpclient

我正在编写一个需要从一块硬件接收多播数据的应用程序。我做得很好。有时,在我的应用程序控制之外,正在广播的硬件将重新启动。通过阅读文档,我的理解是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..
}

0 个答案:

没有答案