Pythoh网络编程4:创建UDP服务器和客户端
执行UDP连接的方式与TCP大致相同,不同之处在于客户端和服务器端之间不建立“连接”:
1.创建UDP服务器
# filename:udpServer.py from socket import * from time import ctime HOST = '' # HOST为空与INADDR_ANY含义相同,表示任何地址 PORT = 21567 # 端口号21567 BUFSIZE = 1024 # 缓冲区的大小为1K ADDR = (HOST, PORT) # 地址元组 # 创建服务器端套接字 udpSerSock = socket(AF_INET, SOCK_DGRAM) # 将套接字与地址绑定 udpSerSock.bind(ADDR) # 服务器进入无限循环 while True: print('waiting for message...') # 接收来自客户端的数据,返回数据和地址元组 re_data, addr = udpSerSock.recvfrom(BUFSIZE) print('...receieved from and returned to:', addr) # 发送数据给客户端,内容:[时间]接受的信息 # bytes.decode()对接收的内容进行解码 se_data = ['[', str(ctime()), ']', str(re_data.decode())] # str.encode()对发送内容进行编码 udpSerSock.sendto((''.join(se_data)).encode(), addr) # 关闭服务器端套接字 udpSerSock.close()
2.创建UDP客户端
# filename:udpClient.py from socket import * HOST = 'localhost' # HOST为localhost表示本机,可以换成其他表示服务器端的地址或者域名 PORT = 21567 # 端口号21567 BUFSIZE = 1024 # 缓冲区的大小为1K ADDR = (HOST, PORT) # 地址元组 # 创建客户端套接字 udpCliSock = socket(AF_INET, SOCK_DGRAM) # 通信循环 while True: # 提示用户输入 se_data = input('> ') if not se_data: break # 向服务器端发送数据 # str.encode()对发送内容进行编码 udpCliSock.sendto(se_data.encode(), ADDR) # 接收来自服务器端的数据 re_data, addr = udpCliSock.recvfrom(BUFSIZE) if not re_data: break # bytes.decode()对接收的内容进行解码 print(re_data.decode()) # 关闭客户端套接字 udpCliSock.close()
3.运行
转载于:https://www.cnblogs.com/fortwo/archive/2013/04/24/3041279.html