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通信给个地址就可以发送数据和接收数据,速度较快。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)