2012-05-05 107 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

相關問題