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通信给个地址就可以发送数据和接收数据,速度较快。

 

posted @   浑浑噩噩一只小迷七  阅读(325)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示