在 ThreadingTCPServer 实现的套接字服务器内部,会为每一个客户端创建一个“线程”,该线程用来和客户端进行交互。
在 Python 程序中,使用 ThreadingTCPServer 的步骤如下:
- 创建一个继承自 SocketServer.BaseRequestHandler 的类;
- 在类中定义一个名为 handle() 的方法;
- 启动 ThreadingTCPServer。
下面的实例代码演示了使用 ThreadingTCPServer 创建“客户端/服务器端”通信程序的过程。
实例文件 ser.py 的功能是使用 socketserver 模块创建服务器端程序,该程序能够将收到的信息直接发回到客户端。文件 ser.py 的具体实现代码如下。
python代码
import socketserver
class Myserver(socketserver.BaseRequestHandler):
def handle(self):
conn = self.request
conn.sendall(bytes("你好,我是机器人",encoding="utf-8"))
while True:
ret_bytes = conn.recv(1024)
ret_str = str(ret_bytes,encoding="utf-8")
if ret_str == "q":
break
conn.sendall(bytes(ret_str+"你好我好大家好"