c# UdpClient如何实现组播?要求一对多相互发送和接收信息。

例如UdpClient a,b,c,d;要求a能够向b,c,d发送消息,并且b,c,d能够向a发送消息;最好不让b,c,d之间发送消息。如何实现?

第1个回答  推荐于2016-05-04
不用..一个就可以了...又可以组播又可以单播

收发都是啊~~~一个就能完成功能了.

组波还是单播都是使用Send函数.只是IPEndPoint这个参数不一样..何必用2个发呢....不同的发送方式.只需要修改这个参数就可以了啊

_localIpAddress = GetLocalIpAddress();

_msgSocket = new UdpClient(new IPEndPoint(IPAddress.Parse(_localIpAddress),_msgPort));
_msgSocket.EnableBroadcast = true;
_msgSocket.JoinMulticastGroup(_groupIP);

/// <summary>
/// 组播消息
/// </summary>
/// <param name="msg"></param>
public static void SendMsgToAll(string msg)
{
try
{
byte[] buffer = Encoding.Default.GetBytes(msg);
_msgSocket.Send(buffer, buffer.Length,_groupEP);
}
catch (Exception err)
{
throw err;
}
}

/// <summary>
/// 发送消息给指定IP
/// </summary>
/// <param name="msg">要发送的消息</param>
/// <param name="ip">接收方的IP地址</param>
public static void SendMsgToOne(string msg,string ip)
{
try
{
byte[] buffer = Encoding.Default.GetBytes(msg);
_msgSocket.Send(buffer, buffer.Length, new IPEndPoint(IPAddress.Parse(ip), _msgPort));
}
catch (Exception err)
{
throw err;
}
}

只要替换最后一个参数.就实现了组播和单播.

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网