0
点赞
收藏
分享

微信扫一扫

基于TCP的网络聊天系统

目录

一、前言

二、产品的介绍

1.产品具有的功能

2.产品的各个模块

 3.使用的开发工具以及应用的技术

三、产品的设计

1.服务端

1.1服务端总流程图

1.2数据库及其管理模块设计

1.3用户管理模块设计

1.4业务模块设计

1.5消息的操作

1.6消息队列

2.客户端

2.1登录及注册消息流转图

2.2注册界面

2.3聊天界面及消息流转图

2.4添加好友界面及消息流转

四、产品的测试(视频演示)


一、前言

QQ和微信是现代人们生活中必不可少的一部分,身边几乎很难找到人不使用QQ或者微信等聊天工具吧!那么你想要亲手打造一款属于自己的聊天系统吗?那么让我们一起打造出一款自己专属的应用吧。

二、产品的介绍

1.产品具有的功能

该聊天系统具有,登录,注册,添加好友,发送消息,四大功能。

2.产品的各个模块

3.使用的开发工具以及应用的技术

a.开发工具:VS2019,MFC

b.使用的技术:Socket编程,TCP网络通信,多线程,数据库,Json数据格式

三、产品的设计

1.服务端

1.1服务端总流程图

1.2数据库及其管理模块设计

数据库表:因为我们需要保存用户以及用户好友的信息,所以我们至少需要维护两个数据库表

friendInfo:保存用户好友信息的数据库表

user:保存用户信息的数据库表

1.3用户管理模块设计

1.5消息的操作

消息类型和响应类型

enum chat_msg_type{
    Register = 0, //0, 注册请求
    Register_Resp, //1, 注册应答
    Login,   //2. 登录请求
    Login_Resp, //3, 登录应答
    AddFriend, //4, 添加好友请求
    AddFriend_Resp, //5, 添加好友请求应答
    SendMsg, //6, 发送消息
    SendMsg_Resp, //7, 发送消息应答
    PushMsg, //8, 推送消息
    PushMsg_Resp, //9, 推送消息应答
    PushAddFriendMsg, //10, 推送添加好友请求
    PushAddFriendMsg_Resp, //11, 推送添加好友请求的应答 
    GetFriendMsg, //12, 获取全部好友信息
    GetFriendMsg_Resp, //13, 获取全部好友信息应答
    SetUserOffLine //14
    //后续如果要增加业务, 可以在后面增加其他的消息类型
};

enum reply_status{
    REGISTER_SUCCESS = 0, //0, 注册成功
    REGISTER_FAILED, //1,注册失败
    LOGIN_SUCESSS, //2, 登录成功
    LOGIN_FAILED,  //3, 登陆失败
    ADDFRIEND_SUCCESS, //4, 添加好友成功
    ADDFRIEND_FAILED, //5, 添加好友失败
    SENDMSG_SUCCESS, //6, 发送消息成功
    SENDMSG_FAILED, //7, 发送给消息失败
    GETFRIEND_SUCCESS, //8,获取好友列表成功
    GETFRIEND_FAILED  //9, 获取好友列表失败
};

消息类型的格式

/*
 * 注册请求的消息格式
 *   sockfd_ (消息达到服务端之后, 由服务端接收之后, 打上sockfd_)
 *   msg_type_ : Register
 *   json_msg: {
 *      nickname : 'xxx'
 *      school : "xxx"
 *      telnum : "xxxx"
 *      passwd : "xxxx"
 *   }
 *
 * 注册的应答:
 *   msg_type_ : Register_Resp
 *   reply_status_ = REGISTER_SUCCESS / REGISTER_FAILED
 *      如果是REGISTER_SUCCESS : [user_id_]
 *
 *
 *
 * 登录的请求消息格式
 *   sockfd_ (消息达到服务端之后, 由服务端接收之后, 打上sockfd_)
 *   msg_type_ : Login
 *   json_msg_ : {
 *      telnum : xxx
 *      passwd : xxx
 *   }
 *
 *   登录的应答:
 *   msg_type : Login_Resp;
 *   reply_status_ : LOGIN_SUCCESS/LOGIN_FAILED
 *       如果是LOGIN_SUCCESS : [user_id_]
 *
 *
 *
 * 添加好友请求:
 *    msg_type_ : AddFriend
 *    json_msg_ :{
 *      fri_tel_num : xxxx
 *    }
 *
 *
 *  推送添加好友的请求
 *      msg_type : PushAddFriendMsg
 *      sockfd_ : 被添加方的套接字描述符
 *      json_msg_: {
 *          adder_nickname : xxx
 *          adder_school : xxx
 *          adder_userid : xxx
 *      }
 *
 * 推送添加好友的应答(被添加方发送给服务端的)
 *     msg_type : PushAddFriendMsg_Resp
 *     user_id : 被添加方的id
 *     reply_status : ADDFRIEND_SUCCESS / ADDFRIEND_FAILED
 *         如果说是ADDFRIEND_SUCCESS
 *             json_msg_ : 添加方的id
 *
 *  添加好友的应答:
 *      msg_type: AddFriend_Resp
 *      reply_status : ADDFRIEND_FAILED / ADDFRIEND_SUCCESS
 *          如果是成功:ADDFRIEND_SUCCESS
 *             json_msg_ : 
 *                 BeAdd_nickname : 被添加方的名字
 *                 BeAdd_school : 被添加方的学校
 *                 BeAdd_userid : 被添加方的id
 * */

2.客户端

客户端使用VS2019的MFC功能创建的

四、产品的测试(视频演示)

TCP聊天系统测试

举报

相关推荐

0 条评论