相信都有使用过聊天工具聊过天,不管使用QQ还是微信,首先得注册一个账号,聊天前,你得加对方为好友,之后才可以聊天。

前面也写过一片使用socket通信的文章,在里面讲到,两台机器要聊天,首先其中一方得知道知道另一方的地址和端口号,然后连接上才可以进行通信。

但是我们的微信和QQ每次可不是固定端口和地址的,因为有时候我们用电脑,有时后用手机,或者手机很多换着来,按照前面的思路,那一个QQ用户是如何找到另外一个QQ用户的呢?

过程其实是这样的,QQ客户端会请求一个连接给服务器,服务器接收后,知道QQ端用户上线,把qQQ端用户的账号跟目前的ip会记录下来,放在在线列表里或者其他的地方,然后每隔几分钟或者几秒钟给QQ端用户发送心跳包,问他是否还在线,来确保QQ端用户的最 新状态,这里客户端与服务器的通信方式是udp。

今天要实现的是一个群聊小程序,程序有一个服务端和一个客户端,客户端有一个下面如下:

当用户连接上服务器后,服务器就会给用户发送恭喜你已经加入python学习群(后面还会实现在左侧显示用户的名字),当还有其它用户继续加入时,会通知已经加入的用户,说某个用户加入python学习群,之后不管哪个用户发送消息,大家的窗口中都会显示出消息来,就好像大家在一个群里一样(更高级的还可以选择在线人员,点对点在两人私聊)。

下面是初版的运行效果图,服务端为了显示效果,保留了终端输出,理论上是躲在后台什么也不用显示的。

不断有用户加入,新用户加入会说恭喜你加入,其它用户会被通知某某加入群聊。

当其中任意一个用户发送消息,其它用户都会同步收到。

实现思路:

1.先实现一个简单的终端显示连接的功能,保证最小功能可以实现。

2.使用QtCreator制作一个UI用户界面。

3.实现UI界面本地的消息发送和接收。

4.将本地的接收替换成socket接收。

5.加入多线程和消息发送,实现既可以显示UI界面,发送消息和接收消息。

(全文完)

python字符的编码与解码

python鼠标连点器-测试版

python递归算法(下)

教你实现一个gif处理软件(下)

python制作连点器_python群聊工具实现(上)相关推荐

  1. python制作音乐播放器_python实现音乐播放器 python实现花框音乐盒子

    本文实例为大家分享了python实现音乐播放器的具体代码,供大家参考,具体内容如下 """这是一个用海龟画图模块和pygame的混音模块制作的简易播放器. 作者:李兴球, ...

  2. python制作壁纸获取器exe,壁纸采集

    python制作壁纸获取器exe,壁纸采集 [为想学习爬虫的小白朋友分享的入门级代码,一键获取大量壁纸] sorry: 很久没更新了,因为参加了实训就紧接着去学车了(每天都是车少人多,最多练三次),最 ...

  3. 用Python制作简易播放器(电子钢琴) mac系统

    用Python制作简易播放器(电子钢琴) 开发环境:Python3.7 Mac OS 思路: 先根据需要设计GUI的样式,并思考需要定义什么功能 把功能写出来 把功能填入GUI之中 用曲子测试完整的程 ...

  4. 用Python制作音乐播放器(下,含完整源代码)

    哈喽,大家不知道是上午好还是中午好还是下午好还是晚上好! 音乐播放器,大家应该不陌生吧!今天我们一起来学习如何用python制作音乐播放器.之所开头有一个"下",是因为我们以前已经 ...

  5. 用Python制作音乐播放器(上)

    用Python制作简单的音乐播放器 哈喽,大家不知道是上午好还是中午好还是下午好还是晚上好! 音乐播放器,大家应该不陌生吧!今天我们一起来学习如何用python制作音乐播放器.之所开头有一个" ...

  6. 使用python制作读取示波器波形的GUI小工具

    使用python制作读取示波器波形的GUI小工具 1.使用python创建GUI界面,该界面可以读取CSV数据格式的示波器波形并绘制在GUI界面上 2.可以zoom缩放操作 3.源码见链接 https ...

  7. 基于Java实现企业微信群聊机器人-文件上传+消息推送(保证可用)

    基于Java实现企业微信群聊机器人-文件上传+消息推送 1.pom.xml(注意版本尽量保持一致) 2.文件工具类 3.企业微信请求类 4.企业微信响应类 5.发送方法 6.企业微信机器人创建和配置 ...

  8. python制作微信小程序_python搭建微信小程序

    微信官方发布小程序自动化测试框架Minium.该框架支持使用Python或者Javascript编写自动化测试程序,可以运行在IDE.Android以及iOS三端. 由于是微信官方发布,该框架注定秒杀 ...

  9. 30行Python代码,打造一个微信群聊助手~

    大家都知道,最近代码君迷上了Python,一直在研究这门语言,还是那句话,人生苦短,我学Python,今天代码君要教大家一个黑科技,30行代码实现自己定制的微信群聊助手,这个助手有什么用呐,就是用来活 ...

最新文章

  1. LeetCode刷题-2
  2. C#语法之fixed 语句
  3. CSDN博客 专用备份工具
  4. 实验13 简单FTP 程序设计
  5. wxWidgets:wxFocusEvent类用法
  6. 严格模式 华为_华为千元机虽然好,但是千万别乱选,这三款才是内行人的最爱...
  7. 第七届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)
  8. 关于处理小数点位数的几个oracle函数
  9. 用HttpClient来模拟浏览器GET POST
  10. 安徽掀起新一轮大规模清房行动 官员急抛房产
  11. nessus下载后更新插件问题新的解决方法2020
  12. 人工智能可以替代人类?今天要来说说人工智能与人类意识到底差距在哪里!...
  13. IntentService使用姿势
  14. 东师《《证据法学》》在线作业一二三离线作业网考
  15. Java游戏编程不完全详解-2
  16. Kafka-Steam Branch功能 对数据进行切分Steam,发送到指定的Topic
  17. win7 关闭计算机休眠,技术编辑教您win7下怎么关闭休眠
  18. linux如何启动网络配置文件,linux系统的网络配置教程 Ubuntu系统网络设置方法网络配置linux及Ubuntu通过修改配置文件进行网络配置...
  19. 排序与分页Pagination
  20. centos7 qemu -- 03 使用KVM虚拟机遇到的问题

热门文章

  1. DLT645电表转换成modbus的协议转换方案
  2. dedecms 列表页 隔行 插入样式
  3. easy-mock搭建过程中,利用docker-compose运行easy-mock注意事项,重点是mongo版本错误导致构建失败
  4. 商务费用 vs 交付费用
  5. 【观察】打造中国基础软件新名片,星环科技创新与超越之路
  6. 综合布线系统---常见机柜尺寸
  7. 【网络通信 -- 直播】网络通信协议简介 -- SRTP/SRTCP
  8. 第一代计算机游戏,十款,非常经典的老游戏,是台电脑就能玩
  9. 计算机考上研究生暑假去哪里实习_暑假计算机实习报告
  10. ShareLatex+Overflow:PDF Rendering Error Something went wrong while rendering this PDF问题解决