我写了一个简单的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,然后查看您得到的响应。另外,为什么要从浏览器访问 /测试?我在代码中看不到该部分。我希望你已经照顾好了。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top