首页 > 代码库 > python-socket-SocketServer - Forking
python-socket-SocketServer - Forking
在之前的文章中,客户端和服务端。一般情况下并非是一对一的关系。多对一,多个客户端连接一个服务端。并且服务端需要对每一个客户端进行信息处理。
在客户端不多的情况下,可以采取为每一个客户端创建一个进程对其进行服务。
SocketServer中为Forking架构。
代码说明:
""" @function test forking request handle """ import os import socket import SocketServer class ForkingServer(SocketServer.ForkingMixIn, SocketServer.TCPServer): """ no thing to do""" pass class ForkingMsgHandler(SocketServer.BaseRequestHandler): def handle(self): data = http://www.mamicode.com/self.request.recv(1024)" the process id is : " + current_process response = "Process " + current_process + " send response message" self.request.send(response) return if __name__ == ‘__main__‘: tcp_server = ForkingServer(("172.0.0.1", 8321), ForkingMsgHandler)
两个关键类ForkingServer和ForkingMsgHandler
ForkingServer需要继承SocketServer.ForkingMixIn 和 SocketServer.TCPServer.并且不能颠倒顺序。当收到一个来自客户端的请求,Forking一个新的进程在进程中启动TCPserver与其建立连接。
ForkingMsgHander为消息处理类。需要继承SocketServer.BaseRequestHandler.该函数的作用是在一个进程中处理连接后来自客户端的消息。
python-socket-SocketServer - Forking
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。