#server.py
from socket import *
from time import ctime
HOST = 'localhost'
PORT = 8080
BUFSIZ = 1024
ADDR = (HOST, PORT)
udpSerSock = socket(AF_INET, SOCK_DGRAM)
udpSerSock.bind(ADDR)
while True:
print('waiting for message...')
data, addr = udpSerSock.recvfrom(BUFSIZ)
content = '[%s] %s' % (bytes(ctime(), "utf-8"), data)
udpSerSock.sendto(content.encode("utf-8"), addr)
print('...received from and returned to:', addr,data)
udpSerSock.close()
#locate.py
from socket import *
HOST = '682acbc6.r8.cpolar.top'
PORT = 8080
BUFSIZ = 1024
ADDR = (HOST, PORT)
udpCliSock = socket(AF_INET, SOCK_DGRAM)
while True:
data = input('> ')
if not data:
break
udpCliSock.sendto(data.encode("utf-8"), ADDR)
data, ADDR = udpCliSock.recvfrom(BUFSIZ)
if not data:
break
print(data)
udpCliSock.close()
望采纳!!点击该回答右侧的“采纳”按钮即可采纳!!
你先要确保:
1.本地电脑的防火墙规测放行了8080端口的流量。
2.如果你使用的是路由器,需要确保路由器的端口映射规则正确配置,将外网的流量转发到
本地电脑的8080端口。
3.如果你在本地运行的UDP服务器已经启动,则需要确保服务器能够正常接收外网的UDP数
据包。
如果你仍然无法从外网访问本地的8080端口,建议你尝试在本地电脑上抓包,查看乱UDP数据
包是否被拦截。还可以尝试使用telnet工具测试一下本地电脑是否能够接收到外网的UDP数
据包。