繁体   English   中英

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

[英]How to connect 2 computers on diffrent networks using python sockets

我正在尝试连接位于不同网络上的两台不同的计算机,但出现错误:

TimeoutError:[Errno 110]连接超时

有时我会收到此错误:

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

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

server.py

import socket
server_socket = socket.socket()
server_socket.bind(("127.0.0.1", 80))
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(("server_public_ip_here", 8820))
client_command = input("command: ")
client_socket.send(client_command.encode())
data = client_socket.recv(1024).decode()
print("server: " + data)

我希望在计算机之间建立连接,但会不断收到TimeoutErrorOSError

如果您在两台不同的计算机上,则应绑定到0.0.0.0 (以侦听所有网络连接)或服务器的IP,以在该IP上进行连接,而不是127.0.0.1localhost )。 如果客户端和服务器都在同一台计算机上,则可以使用。 另外,您应该在客户端和服务器上使用相同的端口。

我测试它,它的工作原理是:

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM