一起聊项目

####项目名称:一起聊
#####实现功能:
类似于多人聊天室,用户在终端输入昵称等个人信息进入聊天室,该用户发送一条消息,在线所有的好友都可以收到,任意在线好友发送的消息,该用户也都可以收到。
#####使用技术:
socket编程,json,ncurses,生产者消费者模型
#####开发环境:
Linux(Centos7),C++(C98,C++11),g++(4.8.4),gdb(7.6.1)
#####网络传输协议:UDP
#####自定义协议:
采用json格式处理发送的数据和接收的数据

	  Json::Value value;                                                                                                                             
      value["name"] = name; //用户昵称                                                                                                                                 
      value["gender"] = gender;  //用户性别                                                                                                                            
      value["age"] = age;   //用户年龄                                                                                                                                 
      value["cmd"] = cmd;  //标志字段,判断是否下线                                                                                                                                  
      value["words"] = words;   //用户真实要发送的消息 

######服务器端功能介绍:
(1)负责接收所有用户的消息
接收到用户发送消息时,就将该消息保存在一个阻塞队列中
(2)将一条消息对所有的用户进行广播
从阻塞队列中取出一条消息,然后更新在线好友列表,对在线所有用户发送消息
######客户端功能介绍:
(1)负责向服务器发送消息
获取用户输入的消息,将数据格式化,向服务器发送消息
(2)负责接收服务器发来的消息
接收到来自服务器的消息时,就将消息保存在双端队列中,然后更新在线好友列表,显示聊天框
######整体设计思想:
这里写图片描述

代码实现链接:https://gitee.com/zhoudandandandanzhou/review/tree/master/chat
项目拓展:
在自己现阶段所学的软件测试基础上,对该项目进行测试
(a)功能测试:前提条件:网络状态良好 + 输入正确的[IP+Port]
(1)输入昵称,性别,姓名,按下回车后出现聊天界面
(2)可以多个用户进入聊天室
(3)在多个用户进入聊天室后,该用户发送一条消息,其他用户都可以收到
(4)在多个用户进入聊天室后,其他所有用户发送的消息,该用户都可以收到
(b)性能测试:
(1)最多有多少个用户可以进入聊天室(最大用户数)
(2)多个用户同时发送消息时,收到消息的延时(服务器的平均响应时间)
(c)界面测试:
(1)在不同的窗口下,仍然可以正常显示聊天界面
(2)消息框和好友列表框大小分布合理够用
(d)易用性测试:
(1)无需注册账号,用户可以用不同的个人信息进行聊天
用到的编写测试用例的方法有,按照需求进行编写测试用例,等价类、边界值、推测法等
完。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值