mini聊天室(Linux下基于UDP实现的群聊系统)

本文介绍了一个基于Linux的UDP群聊系统,采用多线程+生产者消费者模型,利用jsoncpp进行序列化和反序列化。客户端通过ncurses库实现窗口界面,服务器端接收并广播用户数据。详细讲解了系统原理、技术选型和模块功能。
摘要由CSDN通过智能技术生成

一.原理

(1)客户端从标准输入读取数据,将数据序列化后发送至网络;

(2)服务器端使用多线程+生产者消费者模型;

  • 生产者从网络中读取数据,并将读取到的用户信息添加至用户列表,将数据放至数据池中;
  • 消费者从数据池读取数据,并广播给所有在用户列表中的用户。

(3)数据经过网络以后,反序列化再次发送给客户端,实现群聊功能。

二.所用技术

平台:Centos7.0,64位操作系统

语言:C/C++

编译工具:g++

序列化和反序列化工具:jsoncpp

窗口设计框架:ncurse/ncurses

其他:生产者消费者模型,信号量互斥机制,多线程编程,socket套接字编程

三.系统框架

server模块:收到用户发送的字符串以后,将用户信息存储到在线用户列表中,将数据存储到数据池中,再将数据广播给所有的在线用户;

cli

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值