2012-05-05 106 views
2

我尝试使用套接字与Python,但我一直收到此错误消息:在/ etc/hosts中的Python socket.error:[错误111]连接被拒绝在Ubuntu 12.04

import socket 
>>> s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
>>> s.connect(('localhost', 8000)) 
Traceback (most recent call last): 
    File "stdin", line 1, in module 
    File "/usr/lib/python2.7/socket.py", line 224, in meth 
    return getattr(self._sock,name)(*args) 
socket.error: [Errno 111] Connection refused 

配置是:

::1  ip6-localhost ip6-loopback 
fe00::0 ip6-localnet 
ff00::0 ip6-mcastprefix 
ff02::1 ip6-allnodes 
ff02::2 ip6-allrouters 

系统是Ubuntu 12.04,没有配置防火墙。 试图改变端口号,但没有运气;它只适用于与“localhost”不同的域名。有人知道它为什么会发生?

+1

在你的机器上的端口上是否有任何东西在监听? – Mat

+0

不,没有。这可能是防火墙问题还是特权问题? 。我在win7上遇到了同样的问题,所以我将win防火墙配置为允许python连接到本地主机,然后它可以工作。 – Michele

+1

如果没有任何内容正在侦听,则无法连接。 – Mat

回答

1

尝试

s = socket.socket(socket.AF_INET6, socket.SOCK_STREAM) 
s.connect(('::1', 8000)) 

你似乎启用仅使用IPv6。

+0

刚刚尝试过,同样的错误。':: 1'是什么意思? – Michele

+0

抱歉..经过仔细检查我的/ etc/hosts文件是这样127.0.0.1 \t本地主机 127.0.1.1 \t米歇尔 - 系统 - 产品名称 #以下行是希望支持IPv6的主机 :: 1 IP6 -localhost ip6-loopback fe00 :: 0 ip6-localnet ff00 :: 0 ip6-mcastprefix ff02 :: 1 ip6-allnodes ff02 :: 2 ip6-allrouters – Michele

相关问题