我用SocketServer编写了一个简单的python脚本,它在Windows上运行得很好,但是当我在远程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
,并尝试用我的浏览器访问{
更新:问题解决了,这是防火墙问题,谢谢大家。
您绑定到127.0.0.1:7777,但随后尝试通过服务器外部IP访问它(我将使用您的占位符-xxx.xxx.xxx.xxx)。127.0.0.1:7777和xxx.xxx.xxx.xxx:7777是不同的端口并且可以被不同的进程IIRC绑定。在
如果这还不能解决这个问题,检查一下你的防火墙,很多主机都设置了防火墙,除了你可能使用的那一小部分之外,其他所有东西都会被屏蔽
您正在将服务器绑定到
127.0.0.1
,本地主机的IP地址。这意味着服务器将只接受来自同一台机器的连接;它不会识别来自另一台机器的连接。在您需要绑定到您的外部IP地址,或者绑定到一个通配符地址(即,不要绑定到任何特定的IP地址,只绑定一个端口)。尝试:
先用telnet或nc试试,用你的端口telnet到你的公共ip,看看你得到了什么响应。另外,为什么要从浏览器访问/测试?我在代码里没看到那部分。我希望你已经处理好了。在
相关问题 更多 >
编程相关推荐