如何使用python套接字在不同网络上连接两台计算机

如何使用python套接字在不同网络上连接两台计算机,python,python-sockets,Python,Python Sockets,我正在尝试连接两台不同网络上的不同计算机, 但我有一个错误: TimeoutError:[Errno 110]连接超时 有时我会犯这样的错误: OSError:[Errno 113]没有到主机的路由 我编写了server.py脚本,并在第一台pc上启动它,在第二台pc上启动了client.py server.py 导入套接字 服务器\u套接字=socket.socket() 服务器_socket.bind(((“127.0.0.1”,80)) 服务器\u套接字。侦听(1) (client_soc

我正在尝试连接两台不同网络上的不同计算机, 但我有一个错误:

TimeoutError:[Errno 110]连接超时

有时我会犯这样的错误:

OSError:[Errno 113]没有到主机的路由

我编写了
server.py
脚本,并在第一台pc上启动它,在第二台pc上启动了
client.py

server.py

导入套接字
服务器\u套接字=socket.socket()
服务器_socket.bind(((“127.0.0.1”,80))
服务器\u套接字。侦听(1)
(client_socket,client_address)=服务器_socket.accept()
打印(“客户端已连接[“+客户端地址[0]+”]))
client_命令=client_socket.recv(1024).decode()
打印(客户端_命令.encode())
client.py

导入套接字
client_socket=socket.socket()
client_socket.connect((“这里是server_public_ip_”,8820))
客户端命令=输入(“命令:”)
client\u socket.send(client\u command.encode())
data=client_socket.recv(1024).decode()
打印(“服务器:”+数据)

我希望在两台计算机之间建立连接,但不断地获得
TimeoutError
OSError
如果您在两台独立的计算机上,您应该绑定到
0.0.0
(以侦听所有网络连接)或服务器的IP以获取该IP上的连接,而不是
127.0.0.1
localhost
)。如果客户端和服务器都在同一台机器上,则可以使用。此外,您还应该在客户端和服务器上使用相同的端口

我测试了它,它成功了:

server.py

import socket
server_socket = socket.socket()
server_socket.bind(("0.0.0.0", 8000))
server_socket.listen(1)
(client_socket, client_address) = server_socket.accept()
print ("client_connected [" + client_address[0] + "]")
client_command = client_socket.recv(1024).decode()
print(client_command.encode())
client.py

import socket
client_socket = socket.socket()
client_socket.connect(("127.0.0.1", 8000)) #or enter ip of server
client_command = input("command: ")
client_socket.send(client_command.encode())
data = client_socket.recv(1024).decode()
print("server: " + data)

看起来您正在侦听端口80,但试图连接到端口8820。此外,您正在绑定到127.0.0.1并连接到另一个IP。注意:1.避免使用8000作为端口或任何以80开头的端口。因此,许多其他服务器应用程序都会使用它们。2.确保已为网络上的TCP流量正确设置防火墙策略两台机器使用的端口。