服务端 代码:
1 from socket import * 2 3 udp_server = socket(AF_INET,SOCK_DGRAM) # 数据报式套接字 4 udp_server.bind(('127.0.0.1',8080)) 5 while True: 6 data = udp_server.recvfrom(1024) # 接受的是一个元组,该元组第一个参数为接受的字节,第二个参数为发送方的地址 7 print(data) 8 print(data[0].decode())
客户端 代码:
1 from socket import * 2 3 udp_client = socket(AF_INET, SOCK_DGRAM) 4 udp_client.sendto('你好,python'.encode(), ('127.0.0.1', 8080)) # udp发送的为一个元组,第一个参数为字节,第二个参数为接收方的地址
tcp和udp区别
udp可以接受空字节 recvfrom()可以接受空 tcp不可以 recv()
udp可以实现并发 同时可以服务多个客户端
实现时间获取程序 服务端:
1 from socket import * 2 import time 3 4 udp_server = socket(AF_INET, SOCK_DGRAM) 5 udp_server.bind(('127.0.0.1', 8080)) 6 while True: 7 data, addr = udp_server.recvfrom(1024) 8 # print(data.decode()) 9 if not data: 10 fm = '%Y-%m-%d %X' 11 else: 12 fm = data.decode() 13 udp_server.sendto(time.strftime(fm).encode(), addr)
服务端:
1 from socket import * 2 3 upp_client = socket(AF_INET,SOCK_DGRAM) 4 while True: 5 msg = input('请输入格式:') 6 upp_client.sendto(msg.encode(),('127.0.0.1',8080)) 7 data,addr = upp_client.recvfrom(1024) 8 print('服务器发过来的信息为',data.decode())