簡體   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