基于UDP的网络群聊系统
2017-07-27 22:16
218 查看
本系统所涉及到的知识与技术
1、了解Linux操作系统,熟悉基本指令的使用。
2、熟悉Linux开发环境,熟练使用vim, gcc/g++, gdb, make/makefile 等开发工具的使用,学会编写基本的Makefile文件。
3、了解网络, 熟悉数据封包,路由过程。了解协议分层。熟悉udp协议。了解tcp可靠性和udp协议特点。
4、熟练掌握C/C++语言,熟练使用C++ STL中常见容器的使用。如vector,map等。
5、 熟悉生产者消费者模型(本项目服务器端使用单生产者,单消费者模型)
6、熟悉网络套接字编程,至少了解UDP服务器的编写。
7、熟悉线程编程,了解信号量。
8、了解shell编程。
本系统使用的开源/系统库
1.jsoncpp:基于C++编写的json库,提供数据的序列化和反序列化功能
2.ncurse/ncursew:可以使应用程序直接控制终端屏幕显示的库,本项目中,该库为我们提供基本的窗口界面。
3.pthread:Linux系统下的多线程遵循POSIX线程接⼜口,称pthread,本项目中,我们使用该库提供基本的线程控制功能。
设计概图
client模块:群聊系统client上层逻辑,提供client底层通信
server模块:群聊系统server上层逻辑,提供server底层通信
coom模块:群聊系统底层公共逻辑,如数据序列化与反序列化。
window模块:client窗口模块
lib第三⽅方库模块:提供第三⽅方库模块
plugin插件起停服务脚本模块:起停服务脚本
client模块 && server模块
基于UDP协议,完成基本的数据报发送,该模块统⼀一发送string,不对数据进⾏行任何解释。具体数据报的字段解析,由上层完成。
客户端利用多线程处理事务:
第一个线程处理header窗口;
第二个线程处理输出窗口和在线好友列表窗口;
第三个线程处理用户输入窗口;
client:
server:
coom模块
基于jsoncpp,提供基本数据序列化和反序列化功能,以及提供各种server和client公共部分模块。
window模块
基于ncurses 提供client窗口功能.
简易窗口
成果示意图:
1、进入系统
2、多人进入系统
3、好友离线
源码戳这里:网络群聊系统
1、了解Linux操作系统,熟悉基本指令的使用。
2、熟悉Linux开发环境,熟练使用vim, gcc/g++, gdb, make/makefile 等开发工具的使用,学会编写基本的Makefile文件。
3、了解网络, 熟悉数据封包,路由过程。了解协议分层。熟悉udp协议。了解tcp可靠性和udp协议特点。
4、熟练掌握C/C++语言,熟练使用C++ STL中常见容器的使用。如vector,map等。
5、 熟悉生产者消费者模型(本项目服务器端使用单生产者,单消费者模型)
6、熟悉网络套接字编程,至少了解UDP服务器的编写。
7、熟悉线程编程,了解信号量。
8、了解shell编程。
本系统使用的开源/系统库
1.jsoncpp:基于C++编写的json库,提供数据的序列化和反序列化功能
2.ncurse/ncursew:可以使应用程序直接控制终端屏幕显示的库,本项目中,该库为我们提供基本的窗口界面。
3.pthread:Linux系统下的多线程遵循POSIX线程接⼜口,称pthread,本项目中,我们使用该库提供基本的线程控制功能。
设计概图
client模块:群聊系统client上层逻辑,提供client底层通信
server模块:群聊系统server上层逻辑,提供server底层通信
coom模块:群聊系统底层公共逻辑,如数据序列化与反序列化。
window模块:client窗口模块
lib第三⽅方库模块:提供第三⽅方库模块
plugin插件起停服务脚本模块:起停服务脚本
client模块 && server模块
基于UDP协议,完成基本的数据报发送,该模块统⼀一发送string,不对数据进⾏行任何解释。具体数据报的字段解析,由上层完成。
客户端利用多线程处理事务:
第一个线程处理header窗口;
第二个线程处理输出窗口和在线好友列表窗口;
第三个线程处理用户输入窗口;
client:
server:
coom模块
基于jsoncpp,提供基本数据序列化和反序列化功能,以及提供各种server和client公共部分模块。
window模块
基于ncurses 提供client窗口功能.
简易窗口
成果示意图:
1、进入系统
2、多人进入系统
3、好友离线
源码戳这里:网络群聊系统
相关文章推荐
- 基于UDP的网络群聊系统
- 基于UDP的网络群聊系统
- 基于udp的网络群聊系统
- 基于udp通信协议开发的简易聊天系统1.0
- [分布式java]基于JavaAPI实现消息方式的系统间通信:UDP/IP+BIO
- 网络编程(5)—— 基于Linux系统的UDP协议socket服务器和客户端
- 基于UDP的局域网聊天的系统原理
- JSE项目实战---基于UDP与Swing的一对一网络聊天系统
- 基于UDP的Linux畅聊系统(ncurse库和json库)
- 网络编程(6)—— 基于Windws系统的UDP协议socket服务器和客户端
- [置顶] 基于iOS的网络音视频实时传输系统(四)- 自定义socket协议(TCP、UDP)
- 基于udp的监视系统示例
- 基于LINUX系统的SOCKET通信,使用UDP协议.
- [分布式java]基于JavaAPI实现消息方式的系统间通信:UDP/IP+NIO
- RDIFramework.NET — 系列目录 — 基于.NET的快速信息化系统开发框架
- Linux系统下基于PMIPv6的-解决内网访问外网部分网站打不开,或者很慢的问题
- 基于Socket的TCP和UDP编程
- 基于用例驱动和UML的电子商务系统模型设计
- 【软考】基于Web的系统测试方法
- 基于B/S模式的公安办公自动化系统权限管理设计与实现