私はマルチキャスティングを使用してメッセージを連続的に送信しているC#ベースのアプリケーションで作業しています。すべてのものがうまく動作します。受信側のクライアントは、ネットワークが切断されるまで継続してメッセージを受信します。しかし、ネットワークに再接続すると、同じネットワーク上のクライアントマシンは、コードを受信して同じマシン上のすべてのメッセージを収集するまで、メッセージを受信しません。IpMulticastはネットワークが失われた後に作業を停止し、10-15分後に再接続します。
送信コード:
using (UdpClient udpclient = new UdpClient())
{
IPAddress multicastaddress = IPAddress.Parse("239.0.0.222");
try
{
udpclient.ExclusiveAddressUse = false;
udpclient.MulticastLoopback = false;
udpclient.JoinMulticastGroup(multicastaddress);
IPEndPoint remoteep = new IPEndPoint(multicastaddress, 8191);
int j = udpclient.Send(byteBuffer, byteBuffer.Length, remoteep);
}
catch (Exception e)
{
udpclient.DropMulticastGroup(multicastaddress);
udpclient.Close();
}
finally
{
udpclient.DropMulticastGroup(multicastaddress);
udpclient.Close();
}
});
は、コードを受信:
var udpClientDispose = new UdpClient(_settingsViewModel.SyncPort);
var ipEndPoint = new IPEndPoint(IPAddress.Any, 8191);
IPAddress multicastaddress = IPAddress.Parse("239.0.0.222");
udpClientDispose.JoinMulticastGroup(multicastaddress, "192.168.0.12");
var timeElapsedSinceMasterMessageReceived = new Stopwatch();
Stopwatch sw = new Stopwatch();
sw.Start();
while (sw.ElapsedMilliseconds < 5000)
{
udpClientDispose.Receive(ref ipEndPoint);
}
udpClientDispose.Close();`
すべてのメッセージは、私のシステムで収集取得され、特定のマルチキャストアドレスすなわち「239.0のネットワークジャムがあるように思え。 0.222 "となる。私はアドレスを変更しようとするように動作しますが、 "239.0.0.222"では再び動作しません。
誰もが、これが起こっている理由とこれに対する有効な解決策の正確な理由を知っています。