python中socket server

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

1.ThreadingTCPServer -----------(for  threading)

ThreadingTCPServer实现的socket服务器内部会为每个client创建一个"线程",该线程用来和客户端进行交互

import socketserver

class MyTCPHander(socketserver.BaseRequestHandler):

    def handle(self):
        while True:
            try:
                self.data = self.request.recv(1024).strip()
                print("{} wrote:".format(self.client_address[0]))
                print(self.data)
                self.request.sendall(self.data.upper())
            except ConnectionResetError as e:
                print("err", e)
                break
if __name__ == "__main__":
    HOST, PORT = "localhost", 9999
    #MyTCPHander就是我们自己写的tcp处理函数,就是一个线程
    server = socketserver.ThreadingTCPServer((HOST,PORT),MyTCPHander)
    server.serve_forever()
其中,创建的类除了继承自socketserver.BaseRequestHandler外,类中必须定义一个名称为handler的方法

猜你喜欢

转载自blog.csdn.net/qq_32446743/article/details/80067610