我已经使用 python 套接字和 Tkinter 创建了一个聊天应用程序,它在本地运行得很好,但是客户端无法远程连接到服务器(当我输入我的公共 IP 地址作为主机时)我已经完全端口转发了我的网络并且我知道如何很好地进行端口转发,当我运行在线端口打开扫描仪来检查端口是否打开时,它表明该端口已打开!?
我已经在多个端口上对我的路由器进行了端口转发,并相应地更新了客户端和服务器,但是客户端和 telnet 仍然无法连接。我还禁用了所有 Windows 防火墙,并禁用了所有路由器防火墙。
这是一个非常简单的套接字客户端和服务器模型,我试图使用它来解决我的问题。
Server
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()
Client
import socket
s = socket.socket()
port = 2000
s.connect(("109.156.114.183", port))
print (s.recv(1024))
s.close
Telnet
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)已打开。
请帮忙!
谢谢-
马克斯