聊天室项目文档

11 篇文章 0 订阅
5 篇文章 0 订阅

项目简述

实现Linux环境下的简易聊天室,采用C/S模型,实现多客户端之间的稳定数据传输。可参考QQ、微信功能。

项目需求

1.账号管理

  • 登录、注册
  • 找回密码

2.好友管理

  • 私聊(实时性)
  • 好友的添加、删除、查询
  • 查看好友列表
  • 显示好友状态(在线与否)
  • 查看聊天记录
  • 屏蔽好友消息

3.群管理

  • 群聊(实时性)
  • 群的创建、解散(群主才有的权限)
  • 申请加群、退群
  • 查看已加群、查看群成员
  • 查看聊天记录
  • 设置群管理员
  • 踢人(群主或管理员才有的权限)

4.发送文件

  • 文件传输

5.离线传输

  • 离线消息,上线及时发送
  • 离线文件,上线及时提醒有文件传送

6.关于客户端与服务器要求

  • 稳定性
  • 要能处理大量客户端的连接与信息处理、传输
  • 服务器稳定,不会因客户端的意外情况退出
  • 数据正常接受、处理、发送
  • 有容错处理,避免因非法输入导致C/S崩溃
  • 高效性
  • 服务器日志,记录服务器的状态信息

7.相关技术要求

  • I/O 多路复用(epoll)
  • mysql
  • 相关文档

功能展示

登录界面
在这里插入图片描述
功能界面
在这里插入图片描述
聊天界面
在这里插入图片描述

使用准备

更改端口和IP

将服务器中的IP和端口改为你设备中的IP和指定端口,客户端也要修改要连接的端口和IP

mysql 中使用的表

如果你要使用,需要更改服务器中连接数据库时的部分内容,如mysql名字和密码等,还有需要提前创建一些表。

需要提前准备的mysql tables

student(用户列表)

+------------+-------------+------+-----+---------+-------+
| Field      | Type        | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| id         | int(11)     | YES  |     | NULL    |       |
| password   | varchar(20) | YES  |     | NULL    |       |
| name       | varchar(20) | YES  |     | NULL    |       |
| qu         | varchar(50) | YES  |     | NULL    |       |
| an         | varchar(50) | YES  |     | NULL    |       |
| zt         | int(11)     | YES  |     | NULL    |       |
| hylb       | varchar(20) | YES  |     | NULL    |       |
| sj         | int(11)     | YES  |     | NULL    |       |
| fd         | int(11)     | YES  |     | NULL    |       |
| grouptable | varchar(20) | YES  |     | NULL    |       |
+------------+-------------+------+-----+---------+-------+

allgroup(所有群聊信息)

+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id    | int(11)      | YES  |     | NULL    |       |
| name  | varchar(20)  | YES  |     | NULL    |       |
| cylb  | varchar(20)  | YES  |     | NULL    |       |
| jl    | varchar(20)  | YES  |     | NULL    |       |
| qu    | varchar(100) | YES  |     | NULL    |       |
| an    | varchar(50)  | YES  |     | NULL    |       |
| zt    | int(11)      | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+

box(通知信息)

+---------+--------------+------+-----+---------+-------+
| Field   | Type         | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| from_id | int(11)      | YES  |     | NULL    |       |
| end_id  | int(11)      | YES  |     | NULL    |       |
| message | varchar(100) | YES  |     | NULL    |       |
| ZT      | int(11)      | YES  |     | NULL    |       |
| ice     | int(11)      | YES  |     | NULL    |       |
| beizhu  | varchar(20)  | YES  |     | NULL    |       |
+---------+--------------+------+-----+---------+-------+

document(传文件信息)

+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| from_id   | int(11)     | YES  |     | NULL    |       |
| end_id    | int(11)     | YES  |     | NULL    |       |
| file_name | varchar(40) | YES  |     | NULL    |       |
+-----------+-------------+------+-----+---------+-------+
程序自动创建的mysql tables

×××hylb(×××的好友列表)

+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(11)     | YES  |     | NULL    |       |
| beizhu | varchar(20) | YES  |     | NULL    |       |
| jl     | varchar(20) | YES  |     | NULL    |       |
| zt     | int(11)     | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+

***grouptable(***所加群列表)

+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | YES  |     | NULL    |       |
| name  | varchar(20) | YES  |     | NULL    |       |
| sf    | int(11)     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+

******(***和***的聊天记录)

+---------+--------------+------+-----+---------+-------+
| Field   | Type         | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| from_id | int(11)      | YES  |     | NULL    |       |
| xinxi   | varchar(200) | YES  |     | NULL    |       |
| end_id  | int(11)      | YES  |     | NULL    |       |
| zt      | int(11)      | YES  |     | NULL    |       |
+---------+--------------+------+-----+---------+-------+

***cylb(群***的成员列表)

+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | YES  |     | NULL    |       |
| name  | varchar(20) | YES  |     | NULL    |       |
| sf    | int(11)     | YES  |     | NULL    |       |
| day   | int(11)     | YES  |     | NULL    |       |
| time  | int(11)     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+

***jl(群***的聊天记录)

+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id    | int(11)      | YES  |     | NULL    |       |
| name  | varchar(20)  | YES  |     | NULL    |       |
| xinxi | varchar(100) | YES  |     | NULL    |       |
| day   | int(11)      | YES  |     | NULL    |       |
| time  | int(11)      | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值