在套接字服务器程序中使用 ThreadingMixIn

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

当我们不想编写基于进程的应用程序,而更愿意编写多线程应用程序时,如果想使用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
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值