前言:
当前看官们对“python发消息到微信群”可能比较注重,咱们都需要学习一些“python发消息到微信群”的相关内容。那么小编在网上汇集了一些关于“python发消息到微信群””的相关知识,希望姐妹们能喜欢,小伙伴们一起来学习一下吧!本文将用Python实现类似QQ,微信群聊的功能,主要分为两大部分,先实现服务器的编写再实现客户端的编写。
服务器编写
这里用到了Python的socket、select模块,socket模块用于创建socket(套接字),select模块用于检测套接字的状态,这里主要用来监听具备读取条件的socket,如果有socket连接服务器或者已经连接服务器的socket有信息发出,则会被select检测到并返回一个列表,里面包含着所有可读的socket。
创建一个服务器套接字有以下步骤:
1、socket模块创建socket;
2、bind绑定IP地址和端口;
3、listen使socket变为被动连接;
4、accept接收客户端的连接;
5、recv/send收发数据。
创建套接字的代码如下,本机是主机的话则只需用一对引号表示本机IP地址:
select部分的代码为服务器代码的核心部分,它实现了监听socket列表的功能,如果某一时刻有socket可以读取,则以列表的形式返回,接下循环遍历所返回的列表,判断是服务器socket可读还是客户端socket可读,然后做出对应的响应。
如果可读的是服务器的socket,说明有新的客户端连接服务器,则服务器socket接受连接请求:
如果可读的是客户端的socket,说明有客户端有信息发送过来,则将信息发送到所有在线的客户端:
以上为服务器的核心部分,除此之外,还需考虑连接异常以及socket关闭的情况:
客户端编写
客户端作用是给用户进行交互,这里用Tkinter库创建三个控件:显示接收信息的文本框,用户输入信息的文本框以及发送按钮,这些控件绑定对应的事件并连接到服务器之后就能实现群聊功能了。
在创建客户端界面之前应先创客户端套接字用于连接服务器,这里的需要写上服务器主机的IP,代码如下:
接下来是创建客户端界面,流程如下:
1、创建一个顶层窗口,可以看作为接收其他控件的容器;
2、创建用于显示信息的Text控件;
3、创建用于输入信息的Text控件;
4、创建用于发送的Button控件
创建控件的代码如下:
这些控件需要绑定对应的事件才能达到效果,各个事件采取函数定义的方式实现:
实现效果
首先运行服务器,接着运行一次客户端代码,实现情况如下:
假设模拟3个人的群聊,服务端的信息显示如下:
客户端聊天实现如下:
但全部客户端全部下线之后,服务器会有响应的记录:
有兴趣获取源码的朋友可以私信回复”群聊“,关注不迷路,感谢支持!
标签: #python发消息到微信群