UDP服务器端和客户端
UDPServer:
Socket udpServer = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
IPAddress iPAddress = new IPAddress(new byte[] { 172, 16, 160, 50 });
IPEndPoint iPEndPoint = new IPEndPoint(iPAddress, 1122);
udpServer.Bind(iPEndPoint); //udp有绑定,但是没有连接、监听.....
IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 0);//IPAddress.Any:任意的IP地址, 0:端口号也任意
EndPoint ep = (EndPoint)ipep;
byte[] data = new byte[1024];
int length = udpServer.ReceiveFrom(data ,ref ep);
Console.WriteLine("接收到数据:" + Encoding.UTF8.GetString(data, 0, length));
TCP建立连接时会返回一个插口(socket)Socket client = tcpServer.Accept();
而UDP只接收数据包,不建立连接。
UDPClient:
Socket udpclient = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
byte[] data = Encoding.UTF8.GetBytes("udp客户端上线了");
IPAddress ipaddress = new IPAddress(new byte[] { 172, 16, 160, 50 });
//ip+port 终端
IPEndPoint iPEndPoint = new IPEndPoint(ipaddress, 1122);
udpclient.SendTo(data,iPEndPoint);
没有严格意义上的客户端和服务器端,双方都可以调用SendTo()发送消息,调用ReceiveFrom()接收消息。
TCP通信需建立连接,数据可靠性,发送较慢。
UDP通信给个地址就可以发送数据和接收数据,速度较快。
浙公网安备 33010602011771号