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