Python Network Programming(8)---SocketServer模块

本文介绍Python SocketServer模块的使用方法,包括创建服务器的基本步骤:定义请求处理程序、实例化服务器类并启动服务器。文章还介绍了如何通过混合类实现异步通信。

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

Note:python3中SocketServer模块名字变为socketserver

SocketServer 模块的官方文档:https://docs.python.org/2/library/socketserver.html

总共有4个基本的服务器类:
TCPServer,UDPServer,UnixStreamServerUnixDatagramServer.
这4个类中封装了socket模块中一些方法,可以实现用socket模块手动完成的所有服务器操作,例如创建套接字、绑定地址和监听进入的连接。
但是这四个类都是同步通信,每一个来自客户的请求,都需要完成后,下一个请求才会开始。在SocketServer模块中,可以使用mix-in类型的类ForkingMixInThreadingMixIn来创建单独的进程或者线程实现异步通信。

Creating a Server

  • First,创建一个请求处理程序,说明如何处理客户端请求。这个请求处理类需要继承自BaseRequestHandler类。请求处理类中,必须重写handle()方法,这个方法将说明如何处理客户的请求。
  • Second,需要实例化(先创建一个新的类,继承自thread或者forking和服务器类中的一个)4个基本服务器类中的其中一个,向其中传入服务器地址参数与请求处理类参数。
  • Then,然后调用服务器对象的handle_request()或者serve_forever()方法来处理一个或者多个请求。
  • Finally,调用server_close()方法来关闭套接字。

KEY POINT:Forking and threading versions of each type of server can be created using the ForkingMixIn and ThreadingMixIn mix-in classes. For instance, a threading UDP server class is created as follows:
class ThreadingUDPServer(ThreadingMixIn, UDPServer): pass
首先要继承的是mix-in类,因为ThreadingMixIn重写了一个UDPServer里面的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值