我怎样才能用 python 插座连接两台电脑?

How can i connect two computers with python socket?

我是新来的! 我在使用不同 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,因为它无法访问。有几种解决方法。

  1. 最简单但不太实用的一种是:让两台机器都在同一个网络中,然后就可以了。
  2. 获取服务器的 public IP 地址。您可以将其托管在为您提供 public IP 的云服务器上,例如 aws、azure、google 云等
  3. 过去,我们使用 hamachi 来获得可以连接两台机器的 VPN。然后他们可以通过该 VPN 相互识别。只需打开 hamachi(或任何其他 VPN 解决方案),运行 你的服务器,然后从你的客户端(连接到 VPN),使用 VPN 的服务器 IP(hamachi 会在你设置网络时为你提供一个)。

免责声明:我已经有大约 15 年没有使用过 hamachi 了,但是因为下面的评论之一才经历了这个过程。

您似乎可以创建一个帐户,然后一旦您打开它,您应该会看到您的 v4 和 v6 地址,如下所示:

突出显示的是我的 v4 地址。我怀疑您需要创建一个网络,将两台 PC 加入同一网络,然后使用 hamachi 的 IP 来模拟行为,就像它们通过 LAN 连接一样。