python udp socket在socket流改变时不发送数据

问题描述

我正在用 python 实现 NAT 打孔。 ip,port 交易的东西在本地主机上工作,但它在两个互联网网络之间不起作用。 我认为它因为套接字流而不起作用。 这是我测试过的。

s1 = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
s2 = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

hostname = socket.gethostname()
host = socket.gethostbyname(hostname)
port = 80
s1.bind((host,port))

data,addr = s1.recvfrom(4096)
print(data,addr)

s2.sendto("good!".encode(),addr)

而且,它不起作用。 nat 打孔不工作的原因是因为地址对其他套接字流不起作用。

除了最初接收数据的套接字流之外,是否还有其他原因不能使用套接字流? 是否有任何解决方案可以实现 NAT 打孔?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)