复制
收藏
提问
简洁
import socket UDP_PORT = 6666 sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock.bind(('', UDP_PORT)) while True: data, addr = sock.recvfrom(1024) # buffer size is 1024 bytes print("received message from %s: %s" % (addr, data.decode())) import socket import sys Nmsg = 1 UDP_PORT = 6666 UDP_IP = "127.0.0.1" if len(sys.argv)==2: UDP_IP = sys.argv[1] sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) for i in range(Nmsg): MESSAGE = str.encode("Hello " + str(i)) sock.sendto(MESSAGE, (UDP_IP, UDP_PORT)逐行注释代码
1周前
全网
文档
学术
百科
知识库
回答简洁模式
深入研究一些
- 代码实现了一个简单的UDP通信,包括服务端和客户端。
服务端代码
- 创建socket:使用
socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
创建一个UDP socket。 - 绑定端口:通过
sock.bind(('', UDP_PORT))
将socket绑定到指定端口,允许从任何IP接收数据。 - 接收数据:使用
sock.recvfrom(1024)
接收数据,其中1024是缓冲区大小。 - 打印信息:打印发送者地址和接收到的消息。
客户端代码
- 创建socket:同样使用
socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
创建UDP socket。 - 发送数据:通过
sock.sendto(MESSAGE, (UDP_IP, UDP_PORT))
发送数据到服务端。 - 循环发送:使用
for
循环发送指定次数的消息。
逐行注释
服务端
import socket # 导入socket库
UDP_PORT = 6666 # 定义端口号
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 创建UDP socket
sock.bind(('', UDP_PORT)) # 绑定端口,允许从任何IP接收数据
while True: # 无限循环,持续接收数据
data, addr = sock.recvfrom(1024) # 接收数据,1024是缓冲区大小
print("received message from %s: %s" % (addr, data.decode())) # 打印发送者地址和消息
客户端
import socket # 导入socket库
import sys # 导入sys库,用于处理命令行参数
Nmsg = 1 # 定义发送消息的数量
UDP_PORT = 6666 # 定义端口号
UDP_IP = "127.0.0.1" # 定义IP地址
if len(sys.argv)==2: # 如果命令行参数数量为2,则使用命令行参数指定的IP
UDP_IP = sys.argv[1]
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 创建UDP socket
for i in range(Nmsg): # 循环发送消息
MESSAGE = str.encode("Hello " + str(i)) # 编码消息
sock.sendto(MESSAGE, (UDP_IP, UDP_PORT)) # 发送消息到服务端
你觉得结果怎么样?