一.运行效果
先说两句,之前我在网上找的相关文章标题上写的是处理多连接,尼玛,全是假的。网上那些,根本不能异步处理多连接,不能主动给客户端发消息。
在服务端控制台输入1,查看在线人数。
给指定客户端发送消息。
二.开发思路
以下说的是服务端开发思路,客户端比较简单就不说了。
首先,需要明白的是socket的accept和recv这两个方法是阻塞线程的。这就意味着我们需要新开线程来处理这两个方法。
具体的程序流程大概是这样的:
1.新开一个线程用于接收新的连接(socket.accept())
2.当有新的连接时,再新开一个线程,用于接收这个连接的消息(socket.recv())
3.主线程做为控制台,接收用户的输入ÿ