UDP广播
客户端UDP发送消息至服务器端
服务器IP:192.168.1.114
服务器端口:2014
客户端
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
IPAddress ipaddress = IPAddress.Parse(“192.168.1.114”);
XDocument doc = new XDocument(...);
byte[] btContent = Encoding.GetEncoding("gb2312").GetBytes(doc.ToString());
IPEndPoint ipendpoint = new IPEndPoint(ipaddress,2014);
socket.SendTo(btContent, ipendpoint);
socket.Close();
服务器端
//在本机指定的端口接收
udpclient = new UdpClient(”2014“);
//接收从远程主机发送过来的信息
IPEndPoint iep = new IPEndPoint(IPAddress.Any,0);
while (true)
{
byte[] bytes = udpclient.Receive(ref iep);
//客户端IP地址
string strIP = iep.Address.ToString();
string strInfo = Encoding.GetEncoding("gb2312").GetString(bytes, 0, bytes.Length);
XDocument doc = XDocument.Parse(strInfo);
}
客户端广播,服务器端接收局域网中某端口
客户端广播的端口:2014
客户端:
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
//初始化一个发送广播和指定端口的网络端口实例
IPEndPoint iep = new IPEndPoint(IPAddress.Broadcast,2014);
XDocument doc = new XDocument(...);
byte[] btContent = Encoding.GetEncoding("gb2312").GetBytes(doc.ToString());
//设置该scoket实例的发送形式
socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 1);
socket.SendTo(btContent, iep);
socket.Close();
服务器端:
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);//初始化一个Scoket协议
IPEndPoint iep = new IPEndPoint(IPAddress.Any,2014);//初始化一个侦听局域网内部所有IP和指定端口
EndPoint ep = (EndPoint)iep;
socket.Bind(iep);//绑定这个实例
while (true)
{
byte[] bytes = new byte[1024];//设置缓冲数据流
socket.ReceiveFrom(bytes, ref ep);//接收数据,并确把数据设置到缓冲流里面
string strInfo = Encoding.GetEncoding("gb2312").GetString(bytes, 0, bytes.Length);
XDocument doc = XDocument.Parse(strInfo);
}

浙公网安备 33010602011771号