前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python群聊工具实现(上)

python群聊工具实现(上)

作者头像
叶子陪你玩
发布2020-05-21 08:56:52
5550
发布2020-05-21 08:56:52
举报

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

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

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

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

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

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

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

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

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

实现思路:

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

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

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

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

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

(全文完)


本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 叶子陪你玩编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实现思路:
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档