聊天室项目文档初稿

引言

项目概要

  • 该项目为linux下的简单聊天室,主要实现了聊天和简单的文件传输。
    实现的功能

1.好友管理:

     (1)添加好友
     (2)删除好友
     (3)私聊
     (4)查看私聊记录
     (5)查看好友列表

2.群管理:

     (1)创建群
     (2)加群
     (3)退群
     (4)解散群
     (5)禁言
     (6)解除禁言
     (7)群聊
     (8)查看群聊记录
     (9)查看用户所在群列表
     (10)查看群好友列表

3.文件传输

       简单的文件传输。

4.数据库

       利用mysqlC语言的API函数,应用数据库对聊天记录等信息进行存储。

5.JSON

       利用JSONC语言的API函数,应用json字符串保存所要传输的数据,进行数据传输。

6.多路复用

       epoll实现服务端的多路复用,保证服务端数据的稳定性。

术语表

序号 术语 说明性定义
1 C/S Client/Sever模型
2 Epoll Linux下处理并发的API
3 json 一种轻量级的数据交换格式
4 mysql 关系型数据库管理系统

参考资料

书籍 作者
《Linux_C编程实战》 董永青
《Linux_C编程从基础到实践》 佚名
《Linux网络编程》 宋敬彬

项目开发环境

deepin 15.6 gcc编译器

程序运行环境

1.安装Mysql数据库

2.下载cJSON相关源代码

数据结构说明

数据结构 使用之处
数组 使用数组,主要是在TCP发送包以及各种功能实现时所使用的。存储字符串,标识符…,这样使功能实现更加便利。
数据库 主要用来存储用户账号,密码,好友信息等等一些比较重要且需要长期保存的东西。

模块设计

client总体设计:
这里写图片描述

扫描二维码关注公众号,回复: 3092811 查看本文章

client_recv模块
功能声明:此模块负责客户端收包
这里写图片描述


client_chat模块
功能说明:此模块负责客户端信息交流
这里写图片描述


sever:总体设计
这里写图片描述


epoll_sever模块
功能说明:此模块负责服务器端的事件管理
这里写图片描述


sever_menu模块
功能说明:此模块负责服务器端的事件处理
这里写图片描述


已知存在的问题和优化方案

1.界面不是很友好,没有消息盒子

2.容错处理不够完整,非合理的输入可能会导致程序崩溃。
可优化处

1.可以建一个队列来作为消息盒子,保证界面的美观性,增加容错操作。

猜你喜欢

转载自blog.csdn.net/Cxinsect/article/details/82533099