前言
聊天室是自己第一次写比较大一点的项目,全程自己构思,设计,虽然中间借鉴了学长学姐的一些博客,但是自己也是不断重构,设计 中间确实踩了不少坑,尤其是中间改bug时候感觉自己的代码跟屎一样,不仅不规范,bug有多,而且设计的是个什么东西,直到现在可能一些设计并不是最优,还是有很大的局限性,整体上该实现的功能都实现了。
epoll LT+多线程
定长包
阻塞套接字(写到最后感觉非阻塞可能更好,但是懒的改了)
mysql c api
一、主要功能点介绍
示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
1.账号管理
登录、注册
找回密码 *
数据加密 *
2.好友管理
私聊(实时性)
好友的添加、删除、查询
查看好友列表
显示好友状态(在线与否)
查看聊天记录
屏蔽好友消息
3.群管理
群聊(实时性)
群的创建、解散(群主才有的权限)
申请加群、退群
查看已加群、查看群成员
查看聊天记录
设置群管理员
踢人(群主或管理员才有的权限)
4.发送文件
文件传输
5.离线传输
离线消息,上线及时发送
离线文件,上线及时提醒有文件传送 **
6.关于客户端与服务器要求
稳定性
要能处理大量客户端的连接与信息处理、传输
服务器稳定,不会因客户端的意外情况退出
数据正常接受、处理、发送
有容错处理,避免因非法输入导致C/S崩溃
高效性
二、具体流程(tip:界面不得不说确实有点丑)
1.登陆界面
2.私聊处理
3.群聊处理
4.文件传送
通过传输后测试哈希值完全相同,判断确实是同一文件.
5.mysql建表
+----------------+
| Tables_in_chat |
+----------------+
| files |
| friend |
| friend_histroy |
| group_histroy |
| groups |
| message |
| user_all |
+----------------+
7 rows in set (0.001 sec)
一共七张表