前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python twisted deferredlist用法

python twisted deferredlist用法

作者头像
用户5760343
发布2022-05-14 10:30:38
1960
发布2022-05-14 10:30:38
举报
文章被收录于专栏:sktjsktj

from twisted.internet import reactor,defer,protocol

class CallbackAndDisconnectProtocol(protocol.Protocol): def connectionMade(self): self.factory.deferred.callback("Connected!") self.transport.loseConnection()

class ConnectionTestFactory(protocol.ClientFactory): protocol=CallbackAndDisconnectProtocol def init(self): self.deferred=defer.Deferred() def clientConnectionFailed(self,connector,reason): self.deferred.errback(reason)

def testConnect(host,port): testFactory=ConnectionTestFactory() reactor.connectTCP(host,port,testFactory) return testFactory.deferred def handleSuccess(result,port): print("Connect to port %i"%port) reactor.stop() def handleFailure(failure,port): print("Error connecting to port %i: %s"%(port,failure.getErrorMessage())) reactor.stop()

if name=="main":

import sys

if not len(sys.argv)==3:

print("Usage: connectiontest.py host port")

sys.exit(1)

host=sys.argv[1]

port=int(sys.argv[2])

connecting=testConnect(host,port)

connecting.addCallback(handleSuccess,port)

connecting.addErrback(handleFailure,port)

reactor.run()

def handleAllResules(results,ports): for port,resultInfo in zip(ports,results): success,result=resultInfo if success: print('Connected to port %i' % port) reactor.stop()

import sys host=sys.argv[1] ports=range(1,201) testers=[testConnect(host,port) for port in ports] defer.DeferredList(testers,consumeErrors=True).addCallback(handleAllResults,ports) reactor.run()

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • if name=="main":
  • import sys
  • if not len(sys.argv)==3:
  • print("Usage: connectiontest.py host port")
  • sys.exit(1)
  • host=sys.argv[1]
  • port=int(sys.argv[2])
  • connecting=testConnect(host,port)
  • connecting.addCallback(handleSuccess,port)
  • connecting.addErrback(handleFailure,port)
  • reactor.run()
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档