微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SocketServer在Linux上不起作用

我用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命令,并尝试使用我的浏览器访问xxx.xxx.xxx.xxx:7777/test ,但是没有在远程机器的终结点…任何想法?

更新:问题解决了,这是一个防火墙问题,谢谢大家。

emacs套接字的位置

套接字对,Perl,KEEPALIVE和轮询

有没有可能是Linux文件描述符0 1 2不适用于标准input,标准输出和标准错误

SocketServer.ThreadingTcpserver – 程序重新启动后无法绑定到地址

使用GNU / Linux系统调用`splice`在Haskell中进行Zero-copy Socket到Socket的数据传输

在Windows中模拟TCP套接字的慢速

如何检测哪个networking接口在Windows 7中使用c + +接收UDP数据包?

什么是UDP缓冲区的单位,以及sysctl params的文档在哪里?

绑定与SO_BINDTODEVICE套接

pythonexception中包含的errnos是否与“linux / errno.h”中的errnos相同?

您将服务器绑定到127.0.0.1 ,即localhost的IP地址。 这意味着服务器将只接受源自同一台机器的连接; 它不会识别来自另一台机器的信号。

您需要绑定到您的外部IP地址,或绑定到通配符地址(即不绑定到任何特定的IP地址,只是一个端口)。 尝试:

myserver = Socketserver.ThreadingTcpserver(('0.0.0.0',MyHandler)

你绑定到127.0.0.1:7777,但试图通过服务器的外部IP访问它(我将使用你的占位符 – xxx.xxx.xxx.xxx)。 127.0.0.1:7777和xxx.xxx.xxx.xxx:7777是不同的端口 ,可以被不同的进程IIRC绑定。

如果没有解决这个问题,请检查你的防火墙,许多主机设置防火墙阻止一切,但少数你可能会使用

先用telnet或者nc,用你的端口telnet到你的公共ip,看看你得到了什么回应。 另外,为什么从浏览器访问/测试? 我没有看到代码中的那一部分。 我希望你已经照顾好了。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐