该聊天系统的设计采用了Client/Server模型,利用socket网络编程和多线程编程等相关知识开发了一款基于TCP的聊天系统,实现了客户端之间的点对点通信。
开发环境:CentOS 7.6,VS2019
编程语言:C/C++
窗口设计:MFC框架
数据交换:JSON数据格式
基于TCP的socket编程,使用epoll多路转接IO模型支持高并发
数据库中的数据同步更新
这里采用录屏的方式进行展示,前提准备如下:
1、有三个用户,他们三个人之间互为好友
2、三人同时在线聊天
3、每个用户的默认聊天窗口展示的聊天信息是自己好友列表的第一个人的聊天信息
4、三人互相发消息,检验能否正常收发成功
1、服务端模块划分图
网络通信模块:主要负责接收客户端的新连接、监控文件描述符,接收数据、发送应答等工作
业务处理模块:针对通信模块接收到的数据按照数据类型进行相应的处理,并将处理的结果返还给发送队列
用户管理模块:针对需要处理的各种业务封装了一些功能性接口,这些接口暴露给业务处理模块供其调用
数据库模块:为用户管理模块提供数据存储接口,将上层业务产生的数据持久化到数据库中
2、服务端消息流转图
1、登录注册消息流转图
2、添加好友消息流转图
3、发送消息流转图