ubuntu python套接字错误[errno 111]
我用python来分析在线广告系统。我尝试连接到服务器但失败,我在终端中运行的代码模板是:ubuntu python套接字错误[errno 111],python,sockets,Python,Sockets,我用python来分析在线广告系统。我尝试连接到服务器但失败,我在终端中运行的代码模板是:python client.py username portnumber 以下是服务器端的代码: import sys import time import socket TIMEOUT = 30 class Firefly: def __init__(self, port): self._port = port def _get_the_dataz(self, s): ret = ""
python client.py username portnumber
以下是服务器端的代码:
import sys
import time
import socket
TIMEOUT = 30
class Firefly:
def __init__(self, port):
self._port = port
def _get_the_dataz(self, s):
ret = ""
s.settimeout(TIMEOUT)
while True:
data = s.recv(4096)
if not data:
break
ret = ret + data;
return ret
def _send_command(self, command, retries=3):
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#s.connect(('127.0.0.1', self._port))
s.connect(('localhost', self._port))
s.send(command)
ret = self._get_the_dataz(s)
s.close()
return ret
except socket.error as ex:
print "Firefly timeout, %d retries left" % retries
print str(ex)
if retries == 0:
print "Can't reach firefly on port %d!" % self._port
raise
retries -= 1
time.sleep([30, 10, 2][retries])
return self._send_command(command, retries)
def get_visual_elements(self, url):
return self._send_command('GOTO %s' % url)
它总是这样返回:
然后我尝试“telnet 127.0.0.1 80”,
它返回:
无法连接到远程主机,连接被拒绝
我该怎么办?做一个netstat,看看是否有进程监听端口80,如果没有,运行服务器/进程。我试过了,没有进程监听端口80,但我仍然无法连接到服务器,实际上,不管我使用的端口号是什么,我无法连接到服务器。如果没有进程侦听,您如何连接?!您显示的代码是试图在端口上连接的客户端。它不是侦听端口的服务器。您是否希望该代码接受端口80上的连接?如果是这样,请查找使用
listen()
和accept()
调用的服务器示例。我的教授让我使用他提供的工具,我只是按照指导,发现了错误。我对python和ubuntu非常陌生,下面是链接:
[errno 111] connection refused
cannot reach server on port 80
traceback(most recent call last):
file "server.py", line 27, in _send_command
s.connect(('localhost', self._port))
file "server.py", line 224, in meth
return getattr(self._sock,name)(*args)