MST

星途 面试题库

面试题:Python中使用SocketServer创建TCP服务器时,如何处理多个客户端连接?

请简述在Python利用SocketServer模块创建TCP服务器,实现同时处理多个客户端连接请求的基本思路,并给出关键代码片段。
42.7万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
  1. 基本思路
    • 导入SocketServer模块。
    • 定义一个请求处理类,该类继承自SocketServer.BaseRequestHandler。在这个类中,重写handle方法来处理每个客户端连接的请求。handle方法中,self.request代表与客户端连接的套接字。
    • 使用SocketServer.TCPServer来创建TCP服务器,将服务器地址和请求处理类作为参数传入。
    • 启动服务器,让其持续监听客户端连接请求,直到手动停止。
  2. 关键代码片段
import SocketServer


class MyTCPHandler(SocketServer.BaseRequestHandler):
    def handle(self):
        self.data = self.request.recv(1024).strip()
        print(f"{self.client_address[0]} wrote:")
        print(self.data)
        self.request.sendall(self.data.upper())


if __name__ == "__main__":
    HOST, PORT = "localhost", 9999
    server = SocketServer.TCPServer((HOST, PORT), MyTCPHandler)
    server.serve_forever()