twisted学习(重要的抽象)

本文详细介绍了Twisted网络编程框架的使用方法,包括Protocol、ProtocolFactory和Transport的使用,以及如何通过Twisted实现快速断开连接的功能。文章旨在帮助开发者掌握Twisted的核心概念,提高网络编程效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

twisted是一个很给力的网络编程框架,涉及到网络编程的,就离不开socket,但是再twisted里面是看不到socket,就是因为twisted已经给我们封装好了。

#!/usr/bin/python

from twisted.internet import reactor, protocol
class QuickDisconnectProtocol(protocol.Protocol):          			 
                                                                 	 
    def connectionMade(self):                              		 
        print "Connected to %s." % self.transport.getPeer().host   
        self.transport.loseConnection()

class BasicClientFactory(protocol.ClientFactory):          			
	protocol = QuickDisconnectProtocol                     
	def clientConnectionLost(self, connector, reason):          
		print "Lost connection: %s" % reason.getErrorMessage()        
		reactor.stop( )    
	def clientConnectionFailed(self, connector, reason):        
		print "Connection failed: %s" % reason.getErrorMessage()
		reactor.stop()

reactor.connectTCP('www.google.com', 80, BasicClientFactory())      

reactor.run()

可以看到,其中有几个重要的抽象:
1、Procotol Factory,他主要是协议的实现,可以用来创建协议,管理用来连接的对象。为每个成功的连接创建一个协议。这个协议,我么你可以自己去写,当然,有很多是已经封装好了的。

2、Procotol,Protocol对应着某个协议的具体实现,比如ftp、imap,或者是某些自定义的协议。再Factory连接成功的时候,就可以得到一个Procotol。可以说,她是Factory的一个实例。

3、Transport,一个Transport代表者一个可以接受发送的数据连接。当我们想从读取低城的数据时,可以使用Transport

以上纯属个人见解!

转载于:https://my.oschina.net/fsxchen/blog/155842

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值