标签:client 处理 self 实例 handler ges 服务器端 相关 精简
利用select监听终端操作实例
利用select实现伪同时处理多个Socket客户端请求:服务端
利用select实现伪同时处理多个Socket客户端请求:客户端此处的Socket服务端相比与原生的Socket,他支持当某一个请求不再发送数据时,服务器端不会等待而是可以去处理其他请求的数据。但是,如果每个请求的耗时比较长时,select版本的服务器端也无法完成同时操作。
基于select实现socket服务端(python2)
python3实现
SocketServer内部使用 IO多路复用 以及 “多线程” 和 “多进程” ,从而实现并发处理多个客户端请求的Socket服务端。即:每个客户端请求连接到服务器时,Socket服务端都会在服务器是创建一个“线程”或者“进程” 专门负责处理当前客户端的所有请求。

ThreadingTCPServer
ThreadingTCPServer实现的Soket服务器内部会为每个client创建一个 “线程”,该线程用来和客户端进行交互。
1、ThreadingTCPServer基础
使用ThreadingTCPServer:
SocketServer实现服务器
客户端2、ThreadingTCPServer源码剖析
ThreadingTCPServer的类图关系如下:
内部调用流程为:
ThreadingTCPServer相关源码:
BaseServer
TCPServer
ThreadingMixIn
ThreadingTCPServerRequestHandler相关源码
SocketServer.BaseRequestHandler实例:
服务端
客户端源码精简:
View Code如精简代码可以看出,SocketServer的ThreadingTCPServer之所以可以同时处理请求得益于select 和 Threading 两个东西,其实本质上就是在服务器端为每一个客户端创建一个线程,当前线程用来处理对应客户端的请求,所以,可以支持同时n个客户端链接(长连接)。
标签:client 处理 self 实例 handler ges 服务器端 相关 精简
原文地址:http://www.cnblogs.com/yechanglv/p/6935599.html