お世話になります。
C#で、UDPによるデータの送受信で、1対1、1対Anyはできるのですが、
1対複数(IPアドレス指定)はどのようにすればよいでしょうか?
具体的には以下のコードで、
mHostIp = "255.255.255.255"; //一斉同報はうまくいきます。
しかし、同報先をIPで指定する方法がわかりません。
たとえば通知先が192.168.1.100,192.168.1.101,..102,..103のように4台にだけ送信した場合、
どのようmHostIpを指定しますか?
private void SendBroadCast(string msg)
{
//送信するデータを作成する
byte[] sendBytes = System.Text.Encoding.UTF8.GetBytes(msg);
//UdpClientを作成する
if (mUdpClient == null)
{
mUdpClient = new System.Net.Sockets.UdpClient(LOCAL_PORT);
}
//非同期的にデータを送信する
mUdpClient.EnableBroadcast = true;
mUdpClient.BeginSend(sendBytes, sendBytes.Length, mHostIp, HOST_PORT, SendCallback, mUdpClient);
}
宜しくお願いします。
しかし、同報先をIPで指定する方法がわかりません。
たとえば通知先が192.168.1.100,192.168.1.101,..102,..103のように4台にだけ送信した場合、
一度の送信で複数の宛先に送るには、UDP のマルチキャストというのを使います。
通信には、クラスD の IPアドレスを使います。
送信側が相手を選ぶのではなく、受信側がマルチキャストの送信アドレスにつなぐ、という形になります。
"c# multicast" というキーワードでググるとサンプルが探せます。