python2 socketserver_Python网络编程篇之socketserver

1.socketserver模块和类

socketserver是标准库中的一个高级模块,目标是简化很多样板代码(创建网络客户端和服务器所必须的代码)

这个模块封装了socket编程所需要的各种各样的类,现在可以使用类来编写应用程序。

因为以面向对象的方式处理事务有助于组织数据,以及逻辑性地将功能放在正确的地方,应用程序现在是时间驱动的,这意味着只有在系统中的时间发生时,它才会工作。

SocketServer内部使用 IO多路复用 以及 “多线程” 和 “多进程” ,从而实现并发处理多个客户端请求的Socket服务端。即:每个客户端请求连接到服务器时,Socket服务端都会在服务器是创建一个“线程”或者“进程” 专门负责处理当前客户端的所有请求。

socketserver模块可以简化网络服务器的编写,Python把网络服务抽象成两个主要的类

一个是Server类,用于处理连接相关的网络操作

另外一个则是RequestHandler类,用于处理数据相关的操作。并且提供两个MixIn 类,用于扩展 Server,实现多进程或多线程。

类的描述

1.BaseServer      包含核心服务器功能和 mix-in类的钩子;仅用于推导,这样不会创建这个类的实例;可以用TCPServer 或 UDPServer 创建类的实例

2.TCPServer/UDPServer            基础的网络同步TCP/UDP服务器

3.UnixStreamServer/UnixDatagramServer    基于文件的基础同步TCp/UDP服务器

4.ForkingMixIn/ThreadingMixIn          核心派出或线程功能;只用做mix-in类与一个服务器类配合实现一些异步性;不能直接实例化这个类

5.ThreadingTCPServer/ThreadingUDPServer  ThreadingMixIn 和 TCPServer/UDPServer的组合

6.ForkingTCPServer/ForkingUDPServer     ForkingMixIn 和 TCPServer/UDPServer的组合

7.BaseRequestHandler包含处理服务器请求的核心功能;仅仅用于推导,这样无法创建这个类的实例;可以用StreamRequestHandler 或 DatagramRequestHandler 创建类的实例

8.StreamRequestHandler/DatagramRequestHandler实现Tcp/UDP服务器的服务处理器

四个基础类的继承关系

+------------+

| BaseServer |

+------------+

|v+-----------+ +------------------+

| TCPServer |------->| UnixStreamServer |

+-----------+ +------------------+

|v+-----------+ +--------------------+

| UDPServer |------->| UnixDatagramServer |

+-----------+ +--------------------+

这四个类使用"同步"来处理请求。只有处理完所有请求后,才可以开始处理新的请求&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值