gpt4 book ai didi

python-3.x - 基本 UDP 网络不接收

转载 作者:行者123 更新时间:2023-12-03 11:55:06 26 4
gpt4 key购买 nike

我正在尝试学习 UDP 网络,所以我尝试了最简单的代码。这是一个 python 代码客户端-服务器,当我从同一台计算机将数据发送到本地主机或 LAN IP 时,它可以完美运行,但是当我尝试使用公共(public) IP 从我的计算机发送数据时它不起作用,也没有使用私有(private)网络 IP 或公共(public) IP 从另一台计算机工作。

我做了端口转发,创建了windows防火墙的输入规则,关闭了路由器内部防火墙,还是不行。

当我从 canyouseeme.org 或使用 netcat 扫描我的端口时,它说连接被拒绝并且端口已关闭。

也许有人可以猜到这里发生了什么,或者我可以做些什么来取得成功?
我写下面的代码以备不时之需。

服务器:

import socket

UDP_IP = "0.0.0.0"
UDP_PORT = XXXX

sock = socket.socket(socket.AF_INET, # Internet
socket.SOCK_DGRAM) # UDP
sock.bind((UDP_IP, UDP_PORT))

while True:
data, addr = sock.recvfrom(1024) # buffer size is 1024 bytes
message = data.decode()
print("received message:", message)

客户:
import socket

UDP_IP = "192.168.1.133"
UDP_PORT = XXXX
MESSAGE = "Hello, World!"

print("UDP target IP:", UDP_IP)
print("UDP target port:", UDP_PORT)
print("message:", MESSAGE)

sock = socket.socket(socket.AF_INET, # Internet
socket.SOCK_DGRAM) # UDP
sock.sendto(MESSAGE.encode(), (UDP_IP, UDP_PORT))

提前致谢。

最佳答案

经过一番调查,我找到了部分解决方案。我发布答案是因为它可能会帮助一些有类似问题的人,但这还不是最好的解决方案,所以问题仍然存在。

我发现如果我 在局域网内通信没有问题完全禁用防火墙在两台计算机中。我不知道为什么输入规则或异常(exception)不起作用。

对于 LAN 以外的网络,我已成功尝试使用虚拟 LAN(即 hamachi),并且不需要端口转发或禁用防火墙。 hamachi 的坏处是我不控制它使用的协议(protocol),我不控制确保可靠性的方式。

对于我现在正在处理的应用程序,我可能对这个解决方案已经足够了,但是了解更多会很有趣。

关于python-3.x - 基本 UDP 网络不接收,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47396817/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com