【问题标题】:Connect two computers on different networks using socket python使用套接字python连接不同网络上的两台计算机
【发布时间】:2020-10-11 18:40:16
【问题描述】:

我正在尝试使用套接字库连接不同网络中的两台计算机。在第一次尝试时,我尝试连接同一网络中的两台计算机,并且成功了。然后我尝试在不同网络中将我朋友的计算机与我的计算机连接,进行各种尝试和各种搜索我无法连接两台计算机,我禁用了服务器(我的计算机)和客户端(我朋友的计算机)的防火墙,但没有,它们没有连接。下面是客户端和服务器的源代码。我做错了什么? 服务器端源码:

import socket
host = socket.gethostbyname(socket.gethostname())
port = 9999

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind((host,port))
sock.listen(1)
print(f"Server's ip: {host}\n Server's port: {port}")
print(f"Waiting for incoming connections...")
client, addr = sock.accept()
print(f"{addr} connected")

客户端代码:

import socket

host = "192.168.1.XXX"

port = 9999

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((host,port))
print("You are connected!")

一段时间后python给出了这个错误:

TimeoutError: [Errno 119] Connection timed out

【问题讨论】:

  • 你能ping通另一台机器吗?
  • 托宾是的,我可以。
  • 从客户端机器,在服务器运行的情况下,你可以telnet到另一台机器的9999端口吗?
  • barny,我无法telnet到不同网络的服务器,但只有在客户端和服务器在同一网络时才能成功。

标签: python sockets networking


【解决方案1】:

好的,我解决了这个问题,我只需要从路由器设置中打开端口 9999。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-21
    • 2015-12-06
    • 2015-05-17
    • 2021-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多