c# UdpClient如何实现组播?要求一对多相互发送和接收信息。
答案:1 悬赏:80 手机版
解决时间 2021-11-28 21:04
- 提问者网友:富士山上尢
- 2021-11-28 08:03
c# UdpClient如何实现组播?要求一对多相互发送和接收信息。
最佳答案
- 五星知识达人网友:拜訪者
- 2021-11-28 09:08
不用..一个就可以了...又可以组播又可以单播
收发都是啊~~~一个就能完成功能了.
组波还是单播都是使用Send函数.只是IPEndPoint这个参数不一样..何必用2个发呢....不同的发送方式.只需要修改这个参数就可以了啊
_localIpAddress = GetLocalIpAddress();
_msgSocket = new UdpClient(new IPEndPoint(IPAddress.Parse(_localIpAddress),_msgPort));
_msgSocket.EnableBroadcast = true;
_msgSocket.JoinMulticastGroup(_groupIP);
///
/// 组播消息
///
///
public static void SendMsgToAll(string msg)
{
try
{
byte[] buffer = Encoding.Default.GetBytes(msg);
_msgSocket.Send(buffer, buffer.Length,_groupEP);
}
catch (Exception err)
{
throw err;
}
}
///
/// 发送消息给指定IP
///
/// 要发送的消息
/// 接收方的IP地址
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;
}
}
只要替换最后一个参数.就实现了组播和单播.
收发都是啊~~~一个就能完成功能了.
组波还是单播都是使用Send函数.只是IPEndPoint这个参数不一样..何必用2个发呢....不同的发送方式.只需要修改这个参数就可以了啊
_localIpAddress = GetLocalIpAddress();
_msgSocket = new UdpClient(new IPEndPoint(IPAddress.Parse(_localIpAddress),_msgPort));
_msgSocket.EnableBroadcast = true;
_msgSocket.JoinMulticastGroup(_groupIP);
///
/// 组播消息
///
///
public static void SendMsgToAll(string msg)
{
try
{
byte[] buffer = Encoding.Default.GetBytes(msg);
_msgSocket.Send(buffer, buffer.Length,_groupEP);
}
catch (Exception err)
{
throw err;
}
}
///
/// 发送消息给指定IP
///
/// 要发送的消息
/// 接收方的IP地址
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;
}
}
只要替换最后一个参数.就实现了组播和单播.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯