簡體   English   中英

無法遠程連接到Python Socket

[英]Can't remotely connect to Python Socket

我已經使用python套接字和Tkinter創建了一個聊天應用程序,它在本地完美運行,但客戶端無法遠程連接到服務器(當我輸入我的公共IP地址作為主機時)我已經完全端口轉發我的網絡和我知道如何很好地移植前進,當我運行一個在線端口打開掃描程序檢查端口是否打開時,它說明端口是打開的!?

我已經將我的路由器端口轉發到多個端口並相應地更新客戶端和服務器,但是客戶端和telnet仍然無法連接..我還禁用了所有的Windows防火牆,並禁用了所有路由器防火牆。

這是一個非常簡單的套接字客戶端和服務器模型,我試圖解決我的問題使用。

服務器

import socket

s = socket.socket()
host='0.0.0.0'

port = 2000
s.bind((host,port))

s.listen(5)
while True:
    c, addr = s.accept()
    print ("Got a connection from: ", addr)
    c.send(bytes("Thanks for connecting",'utf8'))
    c.close()

客戶

import socket 

s = socket.socket()  
port = 2000    

s.connect(("109.156.114.183", port))
print (s.recv(1024))
s.close

遠程登錄

C:\Users\Maks>telnet 109.156.114.183 2000
Connecting To 109.156.114.183...Could not open connection to the host, on port 2000: Connect failed

當我嘗試連接到127.0.0.1或localhost上的服務器或從我的本地網絡連接到客戶端時,客戶端連接完美,telnet也可以連接。 我200%肯定我有正確的端口轉發,因為當我運行端口打開掃描它說端口(2000)是打開的。

請幫忙! 謝謝 - 馬克斯

我在家,所以我的網絡上根本沒有運行防火牆。

該評論是解決問題的缺失部分。 您實際上沒有像您的問題所暗示的那樣從遠程連接,但您嘗試從本地網絡內部連接到路由器的外部可見地址。

某些路由器支持這種設置,而其他路由器則不支持。 看起來你路由器不支持它。 有關這方面的更多信息,請參閱NAT發夾(或NAT環回)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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