一.原理
(1)客户端从标准输入读取数据,将数据序列化后发送至网络;
(2)服务器端使用多线程+生产者消费者模型;
- 生产者从网络中读取数据,并将读取到的用户信息添加至用户列表,将数据放至数据池中;
- 消费者从数据池读取数据,并广播给所有在用户列表中的用户。
(3)数据经过网络以后,反序列化再次发送给客户端,实现群聊功能。
二.所用技术
平台:Centos7.0,64位操作系统
语言:C/C++
编译工具:g++
序列化和反序列化工具:jsoncpp
窗口设计框架:ncurse/ncurses
其他:生产者消费者模型,信号量互斥机制,多线程编程,socket套接字编程
三.系统框架
server模块:收到用户发送的字符串以后,将用户信息存储到在线用户列表中,将数据存储到数据池中,再将数据广播给所有的在线用户;
cli