我是新来的! 我在使用不同 wi-fi 连接的两台计算机之间出现连接问题。大约 20 秒后,我收到无法完成连接的信息。 有我的代码: 服务器:
from socket import *
lista = ['computer']
s = socket(AF_INET, SOCK_STREAM)
port = 21312
s.bind(('my ipv4', port))
s.listen(5)
while True:
for i in range (0, len(lista)):
a = str(lista[i]).encode()
c, addr = s.accept()
print("CONNECTION WITH",addr)
c.send(a)
print(a)
c.close()
客户:
import socket
from socket import *
port = 21312
while True:
s = socket(AF_INET,SOCK_STREAM)
s.connect(('my ipv4', port))
odebrana = (s.recv(1024))
decoded = odebrana.decode()
print(decoded)
s.close()
最佳答案
您遇到问题可能是因为您的服务器位于网络地址转换器 (NAT) 后面。这样您的客户端就无法直接使用服务器的 IP,因为它无法访问。有几种方法可以解决这个问题。
- 最简单但不太实用的方法是:将两台计算机置于同一网络中,然后它应该可以工作。
- 获取服务器的公共(public) IP 地址。您可以将其托管在为您提供公共(public) IP 的云服务器上,例如 aws、azure、google cloud 等。
- 过去我们使用hamachi获得一个可以连接两台机器的VPN。然后他们可以通过该 VPN 相互识别。只需打开 hamachi(或任何其他 VPN 解决方案),运行您的服务器,然后从您的客户端(连接到 VPN)使用 VPN 的服务器 IP(hamachi 将在您设置网络时为您提供一个)。
免责声明:我大约 15 年没有使用过 Hamachi,但由于下面的评论之一,我才经历了这个过程。
似乎您可以创建一个帐户,然后一旦您打开它,您应该会看到您的 v4 和 v6 地址,如下所示:
突出显示的是我的 v4 地址。我怀疑您需要创建一个网络,将两台电脑加入同一网络,然后使用 hamachi 的 IP 来模拟行为,就像它们通过 LAN 连接一样。
关于python - 如何使用 python 套接字连接两台计算机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67539425/