想架一个udp的服务器,用下面的测试代码测试,在阿里云ECS运行服务器程序,本地电脑运行客户端程序。
服务器端代码
(udp-server.py):
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind(('127.0.0.1', 8888))
print("UDP server binded on port 8888")
while True:
data, addr = s.recvfrom(1024)
print("Received from %s:%s." % addr, data)
s.sendto('Welcome!', addr)
客户端代码(udp-client.py):
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
for data in ['a', 'b', 'c']:
#s.sendto(data, ('127.0.0.1', 8888))
s.sendto(data, ('47.254.155.120', 8888))
print s.recv(1024)
s.close()
测试server无法收到client发送的数据。但把server程序和client程序都放在同一台主机上运行,就能够收到数据。
测试时运行了systemctl stop firewalld关闭防火墙。
允许 自定义UDP 1/65535 地址段访问 0.0.0.0/0
允许 自定义UDP 8888/8888 地址段访问 0.0.0.0/0