won*_*ng2 2 python sockets linux python-2.7
我使用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()
Run Code Online (Sandbox Code Playgroud)
我通过SSH将其上传到远程计算机,然后python server.py在远程计算机上运行命令,并尝试xxx.xxx.xxx.xxx:7777/test使用我的浏览器访问,但远程计算机的终端上没有打印任何内容......任何想法?
更新:问题解决了,这是一个防火墙问题,谢谢大家.
您将服务器绑定到127.0.0.1localhost的IP地址.这意味着服务器只接受来自同一台机器的连接; 它不会识别来自另一台机器的那些.
您需要绑定到外部IP地址,或绑定到通配符地址(即不绑定到任何特定的IP地址,只绑定到端口).尝试:
myServer = SocketServer.ThreadingTCPServer(('0.0.0.0', 7777), MyHandler)
Run Code Online (Sandbox Code Playgroud)