python 网络框架twisted基础学习及详细讲解

本文介绍了Python的Twisted网络框架,重点讲解了Protocol、ProtocolFactory和Transport三个基础模块,以及如何创建服务器端和客户端程序。通过示例代码解释了如何实现连接建立、数据收发和断开处理。此外,还提到了安装Twisted的步骤和相关资源,推荐了一本关于Twisted的实战书籍。
摘要由CSDN通过智能技术生成

twisted网络框架的三个基础模块:Protocol, ProtocolFactory, Transport.这三个模块是构成twisted服务器端与客户端程序的基本。

Protocol:Protocol对象实现协议内容,即通信的内容协议
ProtocolFactory: 是工厂模式的体现,在这里面生成协议
Transport: 是用来收发数据,服务器端与客户端的数据收发与处理都是基于这个模块

在windows中安装twisted需要先安装pywin32,自己去下载下就行。随后pip install twisted就会帮我们安装twisted以及zope。

我们结合一张图,以及一段程序来理解下twisted的基础实现:

然后我们首先看看服务器端程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# coding=utf-8
from  twisted.internet.protocol  import  Protocol
from  twisted.internet.protocol  import  Factory
from  twisted.internet.endpoints  import  TCP4ServerEndpoint
from  twisted.internet  import  reactor
 
 
clients  =  []
 
 
class  Spreader(Protocol):
     def  __init__( self , factory):
         self .factory  =  factory
 
     def  connectionMade( self ):
         self .factory.numProtocols  =  self .factory.numProtocols  +  1
         self .transport.write(
             "欢迎来到Spread Site, 你是第%s个客户端用户!\n"  %  ( self .factory.numProtocols)
         )
         print  "new connect: %d"  %  ( self .factory.numProtocols)
         clients.append( self )
 
     def  connectionLost( self , reason):
         self .factory.numProtocols  =  self .factory.numProtocols  -  1
         clients.remove( self )
         print  "lost connect: %d"  %  ( self .factory.numProtocols)
 
     def  dataReceived( self , data):
         if  data  = =  "close" :
             self .transport.loseConnection()
             for  client  in  clients:
                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值