102 基于UDP协议的socket套接字
一、基于UDP协议的socket套接字编程
socket套接字包括使用TCP协议和UDP协议进行通讯
1.1 用法
socket指定使用UDP通讯协议server = socket.socket(socket.AF_INET, type=socket.SOCK_DGRAM)
发送udp数据server.sendto(发送数据)
接收udp数据data, addr = server.recvfrom(1024)
1.2 udp协议的特点
- 可以发空数据(数据报协议,有头)
- 不需要建连接
- 不会粘包
- 不可靠(客户端,服务器谁断开都不受影响)
1.3 实例
服务端
HOST = "127.0.0.1"
POST = 8080
if __name__ == '__main__':
# udp服务器
server = socket.socket(socket.AF_INET, type=socket.SOCK_DGRAM) # 指定udp协议进行通讯。
server.bind((HOST,POST))
while 1:
data, addr = server.recvfrom(1024)
print(data.upper().decode("utf8"))
server.sendto(data.upper(),addr)
客户端
HOST = "127.0.0.1"
POST = 8080
if __name__ == '__main__':
# udp客户端
client = socket.socket(socket.AF_INET, type=socket.SOCK_DGRAM) # 指定udp协议进行通讯。
while 1:
msg = input("请输入>>:")
# 直接发
client.sendto(msg.encode("utf8"),(HOST,POST))
data=client.recvfrom(1024)[0] # 是个元祖
print(data.decode("utf8"))