当我们不想编写基于进程的应用程序,而更愿意编写多线程应用程序时,如果想使用SocketServer库编写异步网络服务器,就得使用ThreadingMixIn类。使用ThreadingMixIn编写的套接字服务器要遵循相同的回显服务器编程模式,不过仍有几点不同。首先,ThreadedTCPServer继承自TCPServer和TheadingMixIn。客户端连接这个多线程版服务器时,会创建一个新线程。
套接字服务器的请求处理类ForkingServerRequestHandler在一个新线程中把消息回显给客户端。在这个类中可以获取线程的信息。简单起见,我们把客户端的代码放在一个函数中,而不是一个类中。客户端代码创建客户端套接字,然后向服务器发送消息。
import os
import socket
import threading
import SocketServer
SERVER_HOST = 'localhost'
SERVER_PORT = 0 # tells the kernel to pickup a port dynamically
BUF_SIZE = 1024
def client(ip, port, message):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREA

本文介绍了如何在Python的SocketServer库中利用ThreadingMixIn来创建一个异步的多线程TCP服务器。当客户端连接到这种服务器时,每个连接都会在独立的线程中处理,提高了并发性能。服务器端的请求处理类在新线程中运行,回显客户端的消息。客户端通过创建套接字并发送消息来与服务器交互。
最低0.47元/天 解锁文章
5382

被折叠的 条评论
为什么被折叠?



