簡體   English   中英

Python 中的簡單 TCP 服務器無法在線工作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM