python error: [Errno 10061] 求助

莹未来 2013-07-12 10:47:35
socket启动的时候报错:

Exception in thread Thread-2:
Traceback (most recent call last):
File "D:\Python27\Lib\threading.py", line 552, in __bootstrap_inner
self.run()
File "D:\Python27\Lib\threading.py", line 505, in run
self.__target(*self.__args, **self.__kwargs)
File "E:\develop\dev_workspace\AptanaStudio3\webhost\dsync\syncserv.py", line 84, in payload_routine
datasync.reportpayload(8008)
File "E:\develop\dev_workspace\AptanaStudio3\webhost\dsync\datasync.py", line 67, in reportpayload
resp = syncdata(localip,localport,localip,localport)
File "E:\develop\dev_workspace\AptanaStudio3\webhost\dsync\datasync.py", line 56, in syncdata
conn.request("POST","/hsync/", params,headers)
File "D:\Python27\Lib\httplib.py", line 955, in request
self._send_request(method, url, body, headers)
File "D:\Python27\Lib\httplib.py", line 989, in _send_request
self.endheaders(body)
File "D:\Python27\Lib\httplib.py", line 951, in endheaders
self._send_output(message_body)
File "D:\Python27\Lib\httplib.py", line 811, in _send_output
self.send(msg)
File "D:\Python27\Lib\httplib.py", line 773, in send
self.connect()
File "D:\Python27\Lib\httplib.py", line 754, in connect
self.timeout, self.source_address)
File "D:\Python27\Lib\socket.py", line 571, in create_connection
raise err
error: [Errno 10061]

怎么回事呀,请把家帮帮忙
...全文
13775 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
sculiuchang 2015-11-15
  • 打赏
  • 举报
回复
看看哈,我也遇到过类似问题哈。
ImN1 2013-07-12
  • 打赏
  • 举报
回复
localip,localport 是什么? 要确认是可访问的web服务 10061 因为目标主机主动拒绝,连接不能建立。这通常是因为试图连接到一个远程主机上不活动的服务,如没有服务器应用程序处于执行状态
derekrose 2013-07-12
  • 打赏
  • 举报
回复
问题解决的办法就是把问题看透
莹未来 2013-07-12
  • 打赏
  • 举报
回复
conn = httplib.HTTPConnection(localip,localport) conn.request("POST","/hsync/", params,headers) resp = conn.getresponse() 执行到第二行报错,确定连接地址开始
INeddy 2013-07-12
  • 打赏
  • 举报
回复
http://blog.csdn.net/xyw_eliot/article/details/8991455 确定连接目标是否开始?连接地址是否正确?
ImN1 2013-07-12
  • 打赏
  • 举报
回复
光说吃完药后的反应不行,还要说说你吃了什么药
莹未来 2013-07-12
  • 打赏
  • 举报
回复
问题已解决,谢谢大家,特别感谢snmr_com给了我解决问题思路。问题出在没有监听对应IP
莹未来 2013-07-12
  • 打赏
  • 举报
回复
我还是将代码贴出来,大家帮我看看吧,我刚接触python,真心不懂啊。 datasync.py #### from calcpayload import ServPayload import json import urllib,httplib from httplib import HTTPException import iputils from datetime import datetime from utils import Mylog def localsync(localip,localport,hostinfo=''): sp = ServPayload() payload = sp.getPayload() timef = datetime.now().strftime('%Y-%m-%d %H:%M:%S') params = urllib.urlencode({"server": localip, "hostinfo": hostinfo, 'port':localport,'payload':payload,'reportTime':timef}) headers = {"Content-Type":"application/x-www-form-urlencoded", "Connection":"Keep-Alive"} Mylog.debug(str(params)) data = '' try: conn = httplib.HTTPConnection(localip,localport) conn.request("POST","/losync/", params,headers) resp = conn.getresponse() data = resp.read() except HTTPException,e: msg = 'localsync:%s,err:\n%s' % (localip,str(e)) Mylog.error(msg) return data def syncdata(localip,localport,host,port,hostinfo=''): sp = ServPayload() payload = sp.getPayload() timef = datetime.now().strftime('%Y-%m-%d %H:%M:%S') params = urllib.urlencode({"server": localip, "hostinfo": hostinfo, 'port':localport,'payload':payload,'reportTime':timef}) headers = {"Content-Type":"application/x-www-form-urlencoded", "Connection":"Keep-Alive"} Mylog.debug(str(params)) data = '' try: conn = httplib.HTTPConnection(localip,localport) conn.request("POST","/hsync/", params,headers) resp = conn.getresponse() data = resp.read() except HTTPException,e: msg = 'localsync:%s,err:\n%s' % (localip,str(e)) Mylog.error(msg) return data def reportpayload(localport): localip = iputils.localip() resp = syncdata(localip,localport,localip,localport) Mylog.debug(resp) robj = json.loads(resp) if 'ServState' in robj: sslist = robj['ServState'] for ss in sslist: if 'server' in ss and 'port' in ss \ and 'service' in ss and ss['service'] == 'hcache'\ and ss['server'] != localip and ss['server'] != '127.0.0.1': sresp = syncdata(localip,localport,ss['server'],ss['port'],resp) Mylog.debug(sresp) if len(sresp) > 10: localsync(localip,localport,sresp) ##### syncserv.py ##### import zmq import threading from utils import Mylog from hcache.msgdata import NotifyMsg import stateInfo def parseNotify(msg): nmsg = NotifyMsg() nmsg.loads(msg) if nmsg.tbname == NotifyMsg.tbSState: stateInfo.onSState(nmsg.mtype, nmsg.ip,nmsg.port,nmsg.service,nmsg.payload,nmsg.lastreport) else: stateInfo.onOtherDbOP() class SyncServ(object): ''' use mq server as server ''' SERVER_SOCKET = 'tcp://*:5555' SERVER_NOTIFY = 'tcp://127.0.0.1:5557' WORKER_SOCKET = 'inproc://webhost_workers' def __init__(self): ''' Constructor ''' self.threads = [] self.clients = {} self.tcount = 10 self.notifythread = None stateInfo.reloaddb() def startserv(self): context = zmq.Context(1) self.notifythread = threading.Thread(target=self.notify_routine, args=(context,)) self.notifythread.start() self.payloadthread = threading.Thread(target=self.payload_routine) self.payloadthread.start() workers = context.socket(zmq.DEALER) workers.bind(SyncServ.WORKER_SOCKET); clients = context.socket(zmq.ROUTER) clients.bind(SyncServ.SERVER_SOCKET) for i in range(self.tcount): thread = threading.Thread(target=self.worker_routine, args=(context,)) thread.start() self.threads.append(thread) zmq.device(zmq.QUEUE, clients, workers) def worker_routine(self,context): socket = context.socket(zmq.REP) socket.connect(SyncServ.WORKER_SOCKET) while True: tmsg = socket.recv_pyobj() rlist = [] if len(tmsg) == 3: rlist = stateInfo.findserv(tmsg[1], tmsg[0], tmsg[2]) socket.send_pyobj(rlist) def notify_routine(self,context): notifier = context.socket(zmq.REP) notifier.bind(SyncServ.SERVER_NOTIFY) while True: tmsg = notifier.recv_pyobj() parseNotify(tmsg) notifier.send_pyobj('OK') def payload_routine(self): import datasync import time while True: datasync.reportpayload(10001) time.sleep(55) if __name__ == '__main__': import os print 'Server', os.getpid() Mylog.initlog() serv = SyncServ() serv.startserv() bug是在我启动syncserv.py时报的,bug如下: E:\develop\dev_workspace\AptanaStudio3\webhost\dsync>python syncserv.py Server 2800 46.0 0.0 66.0 24.5333333333 0.0 5.80078125 Exception in thread Thread-2: Traceback (most recent call last): File "D:\Python27\Lib\threading.py", line 552, in __bootstrap_inner self.run() File "D:\Python27\Lib\threading.py", line 505, in run self.__target(*self.__args, **self.__kwargs) File "syncserv.py", line 84, in payload_routine datasync.reportpayload(10001) File "E:\develop\dev_workspace\AptanaStudio3\webhost\dsync\datasync.py", line 67, in reportpaylo resp = syncdata(localip,localport,localip,localport) File "E:\develop\dev_workspace\AptanaStudio3\webhost\dsync\datasync.py", line 56, in syncdata conn.request("POST","/hsync/", params,headers) File "D:\Python27\Lib\httplib.py", line 955, in request self._send_request(method, url, body, headers) File "D:\Python27\Lib\httplib.py", line 989, in _send_request self.endheaders(body) File "D:\Python27\Lib\httplib.py", line 951, in endheaders self._send_output(message_body) File "D:\Python27\Lib\httplib.py", line 811, in _send_output self.send(msg) File "D:\Python27\Lib\httplib.py", line 773, in send self.connect() File "D:\Python27\Lib\httplib.py", line 754, in connect self.timeout, self.source_address) File "D:\Python27\Lib\socket.py", line 571, in create_connection raise err error: [Errno 10061] No connection could be made because the target machine actively refused it 其中webhost整个工程时启动状态: pydev debugger: starting Validating models... 0 errors found July 12, 2013 - 15:04:05 Django version 1.5.1, using settings 'webhost.settings' Development server is running at http://127.0.0.1:10001/ Quit the server with CTRL-BREAK. [12/Jul/2013 15:04:52] "GET / HTTP/1.1" 404 2548 浏览器中用http://127.0.0.1:10001/可以访问我的工程webhost 报错的地方是我希望启动的后台服务,供这个webhost连接的,可是现在后台服务启动报错。 帮我看看吧,谢谢
莹未来 2013-07-12
  • 打赏
  • 举报
回复
谢谢snmr_com,我试试看
ImN1 2013-07-12
  • 打赏
  • 举报
回复
127是本机,192那个虽然也是同一台机,但是对外的(局域网) 你项目必须指定这个监听ip才能在浏览器访问 现在不清楚你的8000端口是否被其他软件或服务占用(例如proxy常用这些端口) 建议你换成10000或20000以上的端口进行测试(测试时必须保持项目运行中)
莹未来 2013-07-12
  • 打赏
  • 举报
回复
哦,我把刚才的端口换成8000了
莹未来 2013-07-12
  • 打赏
  • 举报
回复
我用windows系统,django 项目webhost(这是我开发的项目名称),我启动我的项目后,在浏览器中用127.0.0.1:8000 地址访问可以,但是将IP换成我的实际IP 192.168.3.196:8000 则不能访问,这是什么原因?刚才那个问题跟这有关系吗?
ImN1 2013-07-12
  • 打赏
  • 举报
回复
引用 6 楼 jiyingying_up 的回复:
localip:127.0.0.1,localport:8008
直接在浏览器能访问么? 很怀疑在8008的服务没有运行
莹未来 2013-07-12
  • 打赏
  • 举报
回复
localip:127.0.0.1,localport:8008

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧