上一篇【Python实现socket简单一对一聊天】中,在一个客户端与服务端建立连接后,其他客户端如果也想与服务端建立连接, 需要等待上一个客户端与服务器之间断开连接之后,才能连接上。
本篇介绍上一篇的升级版,利用Python的socketserver模块,实现一个服务器同时连接多个客户端,并同时进行通信。只需对上一篇中的服务端代码进行改变,而客户端无需改变。
客户端代码见:https://blog.csdn.net/lincoco49/article/details/89639513
步骤如下:
- 导入socketserver模块
- 创建一个类,类名随意,同时必须继承socketserver.BaseRequestHandler类
- 在类中定义handle方法,函数名必须为handle
- 在handle方法中,首先用【conn = self.request】获取服务器与客户端之间的连接,接下来两端之间的通信就基于conn进行
- 创建socketserver.ThreadingTCPServer()类,传入两个参数,一个是由服务器的ip和port组成的元组,另一个是我们在步骤2创建的类的类型。
- 执行server_forever()方法
服务端代码:
#!/usr/bin/env python
# -*- coding:utf-8