【发布时间】: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