[英]Simple TCP Server in Python doesn't work online
我正在關注本教程,因為我對 TCP 或一般網絡不太了解,它可以在 localhost 上運行,但是當我將它切換到我真正的 IP 並要求我的朋友在他的系統上試用客戶端時,它連接不上,報錯:
TimeoutError: [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
如果由於“WinError”部分而在這里很重要,我在 Ubuntu 上,我的朋友在 Windows 上。
服務器.py
import socket
HOST = 'my ip'
PORT = 65432
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind((HOST, PORT))
s.listen()
conn, addr = s.accept()
with conn:
print('Connected by', addr)
while True:
data = conn.recv(1024)
if not data:
break
conn.sendall(data)
客戶端.py
import socket
HOST = '86.184.147.101'
PORT = 65432
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((HOST, PORT))
s.sendall(b'Hello, world')
data = s.recv(1024)
print('Received', repr(data))
我認為這可能只是一些顯而易見的事情,但我在 stackoverflow 或互聯網的其他部分找不到任何相關問題。 干杯!
可能的問題之一是您的家庭路由器/防火牆上沒有啟用端口轉發。 確保您的家庭路由器將端口 65432 轉發到您運行服務器的本地計算機。 谷歌為您的路由器 model 設置“端口轉發”以了解如何配置它。
檢查您是否能夠使用 ping 命令 ping 到服務器。 檢查您的計算機/服務器的 DNATing 規則。 另外,檢查您的防火牆是否允許其他設備連接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.