使用Udp绑定本机接受数据,同时又可以让Udp客户端发送数据,这样就可以不同过服务器让多态主机进行通信了
1、创建套接字,协议类型设为UDP
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
2、绑定主机(地址设为IPAddress.Any)
int port = 8888;
IPEndPoint iep = new IPEndPoint(IPAddress.Any, port);
EndPoint ep = iep as EndPoint;
socket.Bind(ep);
3、接受数据
while (true)
{
}
4、发送数据(发送地址为广播地址IPAddress.Broadcast)
IPEndPoint iep = new IPEndPoint(IPAddress.Broadcast, port)
sock.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 1);
//设置该scoket实例的发送形式
string request = "你好,TEST SEND!";
//初始化需要发送而的发送数据
byte[] buffer = System.Text.Encoding.Unicode.GetBytes(request);
socket.SendTo(buffer, iep);
最后关闭套接字
socket.Close();
问题:
通过以上代码,虽然可以实现广播的功能(局域网内的所有开启监听的程序都能收到信息),但是在发送消息的时候,自己也会收到自己的信息
在信息接收到的时候可以进行ip判断,如果是自己的ip就过滤掉自己的信息
上面红色代码