SocketServer不工作,在Linux上
-
14-10-2019 - |
题
我写了一个简单的python脚本用的SocketServer,它的工作原理以及在窗,但是,当我执行它在一个偏远的Linux机(Ubuntu),它无法在所有的工作..剧本如下:
#-*-coding:utf-8-*-
import SocketServer
class MyHandler(SocketServer.BaseRequestHandler):
def handle(self):
data_rcv = self.request.recv(1024).strip()
print data_rcv
myServer = SocketServer.ThreadingTCPServer(('127.0.0.1', 7777), MyHandler)
myServer.serve_forever()
我上传到远程机器SSH,然后运行命令 python server.py
在远程机器,并试图访问 xxx.xxx.xxx.xxx:7777/test
我浏览器,但没有什么是印刷上的远程计算机的终端...任何想法?
更新:问题的解决,这是一个防火墙的问题,感谢你们所有人。
解决方案
您将服务器绑定到 127.0.0.1
, ,Localhost的IP地址。这意味着服务器将仅接受源自同一机器的连接;它不会识别来自另一台机器的人。
您需要绑定到外部IP地址,或绑定到通配符地址(即不绑定到任何特定的IP地址,只有端口)。尝试:
myServer = SocketServer.ThreadingTCPServer(('0.0.0.0', 7777), MyHandler)
其他提示
你是结合127.0.0.1:7777但后来试图访问它通过外部服务器IP(我会用你占位-xxx.xxx.xxx.xxx)。127.0.0.1:7777和xxx.xxx.xxx.xxx:7777是 不同口 并且可能通过不同的进程,请参考.
如果不能解决它,检查你的防火墙,许多主机设置的防火墙,阻止一切,但是把你很可能会使用
首先尝试使用Telnet或NC,请使用您的端口telnet到您的公共IP,然后查看您得到的响应。另外,为什么要从浏览器访问 /测试?我在代码中看不到该部分。我希望你已经照顾好了。
不隶属于 StackOverflow