基于UDP的套接字
【1】方法简介
(1)UDP服务端
| server = socket() |
| server.bind() |
| inf_loop: |
| conn = server.recvfrom()/conn.sendto() |
| server.close() |
(2)UDP客户端
| client = socket() |
| comm_loop: |
| client.sendto()/client.recvfrom() |
| client.close() |
【2】示例模版
| import socket |
| |
| |
| client = socket.socket(type=socket.SOCK_DGRAM) |
| |
| IP = '127.0.0.1' |
| PORT = 9696 |
| |
| |
| msg = '我是客户端' |
| msg = msg.encode('utf8') |
| client.sendto(msg, (IP, PORT)) |
| |
| |
| msg, addr = client.recvfrom(1024) |
| print(msg.decode('utf8')) |
| print(addr) |
| import socket |
| |
| |
| server = socket.socket(type=socket.SOCK_DGRAM) |
| |
| |
| IP = '127.0.0.1' |
| PORT = 9696 |
| server.bind((IP, PORT)) |
| |
| |
| msg, addr = server.recvfrom(1024) |
| print(msg.decode('utf8')) |
| print(addr) |
| |
| |
| data = '我是服务端' |
| data = data.encode('utf8') |
| server.sendto(data, addr) |
空数据的处理
- TCP协议是水流式协议:传入的数据不能为空,因为水是一直流的,在传输过程中不会对数据进行操作
- UDP协议是数据报协议:传入的数据可为空,在传输过程中UDP会对数据进行内部的拼接和处理
断开链接的影响
- TCP协议是水流式协议:在建立链接过程中,服务端和客户端的链接是一直存在的,断开一方都会对另一方造成影响
- UDP协议是数据报协议:在建立链接过程中,是通过解析对方数据中的ip和端口,再向另一方返回数据的,所以一方发生问题并不会影响到另一方
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!