public void send_multicast(string message)
{
UdpClient c = new UdpClient(10102);
Byte[] sendBytes = Encoding.ASCII.GetBytes(message);
IPAddress m_GrpAddr = IPAddress.Parse("224.0.0.1");
IPEndPoint ep = new IPEndPoint(m_GrpAddr,10102);
c.MulticastLoopback=true;
c.JoinMulticastGroup(m_GrpAddr);
c.Send(sendBytes,sendBytes.Length,ep);
Console.WriteLine(message);
}
public string recv_multicast()
{
Console.WriteLine("was here");
String strData = "";
//String Ret = "";
ASCIIEncoding ASCII = new ASCIIEncoding();
UdpClient c = new UdpClient(10101);
// Establish the communication endpoint.
IPEndPoint endpoint = new IPEndPoint(IPAddress.Any, 10101);
IPAddress m_GrpAddr = IPAddress.Parse("224.0.0.1");
c.JoinMulticastGroup(m_GrpAddr);
Byte[] data = c.Receive(ref endpoint);
strData = ASCII.GetString(data);
//Ret += strData + "\n";
return strData;
}
ポートに何か問題がありますか?
recvメソッドがブロックされていますが、メッセージを受信していませんか?
wiresharkでは、ローカルアドレスポート10102から224.0.0.1 dest_port 0に送信されるメッセージを確認できますが、recvはマルチキャストアドレスからメッセージを取得していません。
ところで、私は同じコンピューターで両方のインスタンスを実行しています。参照: http: //msdn.microsoft.com/en-us/library/ekd1t784.aspx
**解決策を得ました:送信ルーチンで
IPEndPoint ep = new IPEndPoint(m_GrpAddr,10102);
する必要があります
IPEndPoint ep = new IPEndPoint(m_GrpAddr,10101);
受信ポート**