模拟通信,进行消息的收发
【1】初版server端
from socket import * print("服务器已启动") HOST = '0.0.0.0' PORT = 8888 ADDR = (HOST, PORT) # 创建套接字 sock = socket(AF_INET, SOCK_DGRAM) # 绑定地址 sock.bind(ADDR) # 消息收发 while True: data, addr = sock.recvfrom(1024) print("Receive from %s:%s" % (addr, data.decode())) sock.sendto("收到消息".encode(), addr) #上面的while循环是死循环,所以这句不会执行。 # 所以无法访问 This code is unreachable. sock.close()
【1】初版client端
from socket import * import sys #命令行输入服务器地址 if len(sys.argv) < 3: print(''' argv is error !! start as python3 udp_client.py 127.0.0.1 8888 ''') raise HOST = sys.argv[1] PORT = int(sys.argv[2]) ADDR = (HOST,PORT) #创建套接字 sockfd = socket(AF_INET,SOCK_DGRAM) while True: data = input("消息:") if not data: break sockfd.sendto(data.encode(),ADDR) data,addr = sockfd.recvfrom(1024) print("从服务端收到:",data.decode()) sockfd.close()