Python的Socket知识3:socketserver实现多并发、文件上传下载

socketserver内部使用IO多路复用以及“多线程”和“多进程”,从而实现并发处理多个客户端请求的scoket服务端。即,每个客户端请求连接到服务器时,socket服务端都会在服务器是创建一个“线程”或“进程”专门负责处理当前客户端的所有请求。类似于酒店的大堂经理,负责分配服务员给客户。内部调用流程为:启动服务端程序执行 TCPServer.__init__方法,创建服务端socket对象并
摘要由CSDN通过智能技术生成

     socketserver内部使用IO多路复用以及“多线程”和“多进程”,从而实现并发处理多个客户端请求的scoket服务端。即,每个客户端请求连接到服务器时,socket服务端都会在服务器是创建一个“线程”或“进程”专门负责处理当前客户端的所有请求。类似于酒店的大堂经理,负责分配服务员给客户。

内部调用流程为:

  • 启动服务端程序

  • 执行 TCPServer.__init__方法,创建服务端socket对象并绑定IP和端口

  • 执行 BaseServeer.__init__方法,将自定义的继承自socketserver.BaseRequestHandler 的类 MyRequestHandle赋值给 self.RequestHandlerClass

  • 执行BaseServer.server_forever 方法,while 循环一直监听是否有客户端请求到达

  • 当客户端连接到达服务器

  • 执行ThreadingMixIn.proceess_request 方法,创建一个“线程”用来处理请求

  • 执行 ThreadingMixIn.proceess_request _thread 方法

  • 执行 BaseServer.finish_request 方法,执行 self.RequseetHandlerClass() 即:执行 自定义 myclass的构造方法(自动调用基类 BaseRequestHandler的构造方法,在该构

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值