UDPによるデータの送受信で複数宛先を指定したい


お世話になります。
C#で、UDPによるデータの送受信で、1対1、1対Anyはできるのですが、
1対複数(IPアドレス指定)はどのようにすればよいでしょうか?

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2017/06/20 01:15:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。
id:mitsuo_net

具体的には以下のコードで、

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);

}

宜しくお願いします。

回答1件)

id:a-kuma3 No.1

回答回数4973ベストアンサー獲得回数2154

ポイント200pt

しかし、同報先をIPで指定する方法がわかりません。
たとえば通知先が192.168.1.100,192.168.1.101,..102,..103のように4台にだけ送信した場合、

一度の送信で複数の宛先に送るには、UDP のマルチキャストというのを使います。
通信には、クラスD の IPアドレスを使います。
送信側が相手を選ぶのではなく、受信側がマルチキャストの送信アドレスにつなぐ、という形になります。

"c# multicast" というキーワードでググるとサンプルが探せます。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません