社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

无法远程连接到python套接字

Maks Ovnik • 6 年前 • 566 次点击  

我已经创建了一个使用python sockets和tkinter的聊天应用程序,它在本地工作得很好,但是客户端无法远程连接到服务器(当我输入我的公共IP地址作为主机时),我已经完全端口转发了我的网络,我知道如何很好地进行端口转发,以及当我运行一个在线端口打开扫描器时检查一个端口是否打开,它表明该端口已打开!?

我已经在多个端口上转发了我的路由器,并相应地更新了客户机和服务器,但是客户机和telnet仍然无法连接。我还禁用了所有的Windows防火墙,禁用了所有的路由器防火墙。

下面是一个非常简单的socket客户机和服务器模型,我正试图用它来解决我的问题。

服务器

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或本地主机上的服务器或本地网络中的服务器时,客户机连接良好,telnet也可以连接。我有200%的把握我正确转发了端口,因为当我运行一个端口打开扫描时,它显示端口(2000)打开了。

请帮助! 谢谢- 马克斯

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/33608
文章 [ 1 ]  |  最新文章 6 年前
Steffen Ullrich
Reply   •   1 楼
Steffen Ullrich    6 年前

我在家,所以我的网络上根本没有防火墙。

那条评论是解决你问题的缺失部分。实际上,您并不像您的问题所暗示的那样从远程连接,但您试图从本地网络内部连接到路由器的外部可见地址。

某些路由器支持这种设置,而其他路由器不支持这种设置。看起来你的路由器不支持它。有关详细信息,请参阅 NAT hairpinning (or NAT loopback) .