一个专属聊天软件开发,python码农赚了三千块!

一、实验介绍

1.1 实验内容

本实验使用 wxPython 、asynchat、_thread 等模块开发一个图形界面的聊天室程序。

一个专属聊天软件开发,python码农赚了三千块!

一个专属聊天软件开发,python码农赚了三千块!

二、原理解析

QQ图片20180808144134.jpg

录聊天室,并与其他成员进行聊天。

由于 Python 是一门带 GIL 的语言,所以在 Python 中使用多线程处理IO操作过多的任务并不是很好的选择。同时聊天服务器将同多个 socket 进行通信,所以我们可以基于 asyncore 模块实现聊天服务器。aysncore 模块是一个异步的 socket 处理器,通过使用该模块将大大简化异步编程的难度。asynchat 模块在 asyncore 模块的基础上做了进一步封装,简化了基于文本协议的通信任务的开发难度。

一个专属聊天软件开发,python码农赚了三千块!

一个专属聊天软件开发,python码农赚了三千块!

一个专属聊天软件开发,python码农赚了三千块!

一个专属聊天软件开发,python码农赚了三千块!

三、服务器类

一个专属聊天软件开发,python码农赚了三千块!

一个专属聊天软件开发,python码农赚了三千块!

一个专属聊天软件开发,python码农赚了三千块!

3.1 会话类

一个专属聊天软件开发,python码农赚了三千块!

一个专属聊天软件开发,python码农赚了三千块!

3.2 协议命令解释器

一个专属聊天软件开发,python码农赚了三千块!

一个专属聊天软件开发,python码农赚了三千块!

3.3 房间

一个专属聊天软件开发,python码农赚了三千块!

一个专属聊天软件开发,python码农赚了三千块!

四、登陆窗口

完成了服务器端后,就需要实现客户端了。客户端将基于 wxPython 模块实现。 wxPython 模块是 wxWidgets GUI 工具的 Python 绑定。所以通过 wxPython 模块我们就可以实现 GUI 编程了。同时我们的聊天协议基于文本,所以我们和服务器之间的通信将基于 telnetlib 模块实现。

登录窗口通过继承 wx.Frame 类来实现,编写 client.py 文件,代码如下:

一个专属聊天软件开发,python码农赚了三千块!

4.1 聊天窗口

一个专属聊天软件开发,python码农赚了三千块!

一个专属聊天软件开发,python码农赚了三千块!

五、执行

首先,我们执行 server.py ,如下图所示:

一个专属聊天软件开发,python码农赚了三千块!

这时,我们再打开一个终端,执行 client.py 文件,如下图:

一个专属聊天软件开发,python码农赚了三千块!

一个专属聊天软件开发,python码农赚了三千块!

一个专属聊天软件开发,python码农赚了三千块!

一个专属聊天软件开发,python码农赚了三千块!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180823A0T6ZF00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券