基于linux聊天系统

来源:互联网 发布:淘宝打折软件在哪里 编辑:程序博客网 时间:2024/06/05 07:05
一、整体介绍
(1)client模块:畅聊系统client上层逻辑,提供client底层通信
(2)server模块:畅聊系统server上层逻辑,提供server底层通信service_com模块:
(3)畅聊系统底层公共逻辑,如数据序列化。
(4)window模块:client窗口模块
(5)lib第三方库模块:提供第三方库模块
(6)plug插件起停服务脚本模块:起停服务脚本
二、详细解析
(1)client模块 && server模块
基于UDP协议,完成基本的数据报发送,该模块统⼀一发送string,不对数据进⾏行任何解释。具体数据报的字段解析,由上层完成。
(2)service_com模块
基于jsoncpp,提供基本数据序列化和反序列化功能,以及提供各种server和client公共部分模块。
(3)window模块
基于ncurse/ncursew, 提供client窗⼜⼝口功能,
三、使⽤用的开源/系统库
1. jsoncpp:基于C++编写的json库,提供数据的序列化和反序列化功能
2. ncurse/ncursew:可以使应⽤用程序直接控制终端屏幕显⽰示的库,本项⽬目中,该库为我们提供基本的窗⼜⼝口界⾯面。
3. pthread:Linux系统下的多线程遵循POSIX线程接⼜⼝口,称为pthread,本项⽬目中,我们使⽤用该库提供基本的线程控制功能。
四、项目的整体结构

五、运行结果:
一、首先启动./build.sh来进行make

二、启动Server端(cd /output/server)
此处ctrl_server.sh是一个控制脚本,可以控制服务器开启。
三、启动Client端(cd /output/client)

此时页面显示如下(ncurse库实现):

依照提示自行输入nick_name和school
而后输入聊天信息如下图:

此程序的缺陷是只能实现一个用户显示全局消息,其余只能参与聊天,不能实现两个用户直接的单独聊天
此布局中上部分是header信息,显示欢迎消息,中间左侧是输出区域,右侧是好友列表(采用了分页进制),最下面是输入区域。

0 0
原创粉丝点击