初夏小谈:QZ聊天系统大体框架(一)

2019秋招的结束,突然不知道做些什么,总不能天天躺尸吧哈哈。好了,在2019年10月27日的晚上辗转反侧想做出一个完全出自自己的一款软件,类似QQ的软件。体验腾讯初创QQ时,创业的艰难情景。以及对自己所学知识的汇总。

所用到的技术包含C语言,C++语言,数据结构与算法(如vector,map,链表),操作系统(如进程线程等),网络(HTTP,三次握手,Socket,IP及端口号等),以及MySQL数据库等


                                                                                 QZ聊天系统

项目介绍:模拟QQ进行研发在线用户的聊天系统,支持多人群聊,一对一,聊天及文件,图片发送。
两大模块:客户端及服务端。
客户端:

客户端负责
1.0开始界面通过进度条刷新进入进行可服务端连接
2.0用户注册(个人昵称+最少6位数字+密码+绑定邮箱)昵称不允许为空
3.0用户登录(QZ号+密码+忘记密码通过邮箱找回)忘记QZ号仍旧可以通过邮箱找回
4.0创建好友分组,基本分组:1.家人咯,2.朋友们,3.闺蜜呀,4.老铁们,5.恋人
5.0搜索添加好友,通过QZ号搜索,进行添加会选择相应分组。
6.0创建群聊,通过选择需要群聊的好友的QZ号拉入,(至少拉入一个方能创建成功)
7.0每次进行聊天时需要手动选择所需要聊天的对象。


服务端:
1.0处理客户端发送的注册申请,之后去MySQL中查找StartEnd表中的最后未被注册QZ号,并且进行返回,
  将昵称+用户注册QZ号和密码后及邮箱的数据插入PersonInforQZ表中(start始终是100000)(临界资源加锁保护)
2.0用户登录时,通过客户端发送过来的QZ号和密码,去PersonInforQZ表中查找相关信息进行匹配,如果匹配正确则进行反馈客户端登陆成功,
  否则登陆失败,并且提供重新登录以及邮箱找回密码或者QZ号的方法
3.0一个邮箱只能绑定一个QZ号,服务端会对绑定邮箱时进行检测。
4.0登录成功后,服务端会对新用户创建一个PersonGroups表即存储用户分组,并为每一个组创建一个表来存储每个组成员的信息。
5.0客户端再对添加用户时,去已注册的PersonInforQZ中去查找,如果有则返回查找成功,返回,添加好友到对应分组中。对该用户的对应分组进行更新。
6.1一对一聊天:在进行聊天时,选择对应好友中特定人,与对方进行三次握手连接。进行聊天。
   并将聊天信息存储到表名为"PersonAnd100000"中的消息MessageLogg中,如果有文件交互则存储到FileS中
   如果以前有与该用户通信过则给选择1.是否获取聊天记录,2.直接聊天。通过服务器进行两个客户的交互
6.2群聊:      创建群聊时添加所群聊的对象创建群聊总表GroupChatSNum,并创建群名,群用户信息。

这是当前想要做的QZ聊天系统的雏形框架。后面在进行添加修改。

在自己构思的过程中发现有许多的东西使自己没有掌握的像QT界面开发,对数据库的操作不够熟练等等,不要放弃坚持。。。2019.10.28

                                                                                                                                                               珍&源码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值