聊天室功能展示

聊天室要求:

1 . 项目简述

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

功能后的代表选做,其中代表难度比大。 选做必须选几项
1.账号管理

登录、注册
  • 找回密码 *
  • 数据加密 *

2.好友管理

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

3.群管理

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

4.发送文件

文件传输
  • 断点续传 *

5.离线传输

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

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

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

7.相关技术要求

I/O 多路复用(epoll)
mysql
相关文档
  • 数据传输可使用cJSON
  • 图形化 **

项目展示开始:

1.一注册就成功

2.登录成功

3.加好友


删好友,拉黑好友同理,就不一一演示,在数据库中都能查到,也可以③查看好友列表

4.私聊
在对方给你发私聊时,你的屏幕上会弹出私聊者账号及其内容

之后你需要进入私聊与其聊天

不足之处是私聊没有私聊界面,不够美观

退出私聊输入内置命令:#exit

5.查看聊天记录

私聊时将系统时间,聊天内容存入数据库中,查看时直接查数据库即可

6.传/收文件

  • 发文件

输入账号,和文件在本机的绝对路径

这中间会解析文件名,传到服务端就是原本的文件名


此时我们可以看到,服务端已经有传来的一张图片,且已经保存好

  • 收文件

收方会有消息告诉有人传文件,待处理

选择接收后,服务端开始向服务器传文件



此时我们可以看到接收者方出现了在源文件名基础上前面多了个‘n’的文件,这时文件传输完毕
这是在本机上测试的,当时联机的时候传文件有问题,后来改了,还没有再联机测试

7.创群(与注册同理 - 群号随机生成)

8.加群就不放图片了,因为没有申请啥的,就直接进了,不太美观
  其他群的增删改查都与朋友管理功能类似

9.群聊
和私聊界面差不多,不太美观

10.修改密码

mysql中password表中存着
账号和此账号注册的时间(或上次修改密码时间)


在你要操作修改密码时候,会查看数据库中时间
若至今还没有三个月,则禁止修改
若上次修改时间至今已超过三个月,则修改成功,数据库中时间变为现在系统时间


11.退出

按下退出,退出程序,数据库中该账号状态变为离线状态


到此,聊天室项目展示完毕了,其中还有很多bug需要完善,后续会继续改进这个项目

聊天室项目(一)-展示相关推荐

  1. Linux环境下——C语言聊天室项目

    由于使用了多线程操作,客户端进入程序后请先随便注册一次用户后再进行使用. 本程序默认第一个用户即ID为1的用户为超级管理员. 由于线程阻塞,最后的踢人操作有阻塞,需要在被踢出在线链表后手动下线. 看了 ...

  2. 仿微信的网络聊天室项目开发【完整源码讲解】

    目录 总体开发思路 服务器端 服务器界面设计 建立TCP服务器端通信 建立服务器消息发送输出流 建立服务器消息接收输入流 建立服务器实时消息通信线程 设置服务器通信自由断开 客户端 客户端界面设计 建 ...

  3. 基于Linux下的即时通讯聊天室项目(全代码 有注释 可直接运行)

    基于Linux下的即时通讯聊天室项目 一.序言 二.具体功能 三.系统客户要求 四.具体代码 1.服务器代码 2.客户端代码 一.序言 最近在写一个基于Linux下的聊天工具 它适合于局域网内所有人进 ...

  4. C语言聊天室项目说明书

    网络聊天室项目说明 项目的目的和意义 该聊天室项目为利用linux下C语言网络编程相关知识,采用Server/Client,即服务器与客户端的基本框架实现.整个项目涉及了socket套接字,线程,嵌入 ...

  5. Springboot+Vue实现在线聊天室项目-修改头像、添加好友接口的实现

    Springboot+Vue实现在线聊天室项目 该聊天室为大二上学期计算机网络大作业,并且是本人第一次使用vue实现前后端分离的项目,前端架构尚未熟悉可能会出现一些不妥之处,还请大佬们指出.(本文章写 ...

  6. Java聊天室项目GUI界面化实现(Java聊天室 IO流 Socket流 GUI界面 )

    Java聊天室项目GUI界面化实现(Java聊天室 IO流 Socket流 GUI界面 ) 文章目录 Java聊天室项目GUI界面化实现(Java聊天室 IO流 Socket流 GUI界面 ) 1.J ...

  7. 【Java学习】聊天室项目(32)

    聊天室项目需求: 1.用户名登录注册(判断有没有重复用户名,可设置ip和端口) 2.上下线提醒 3.在线列表 4.私聊 5.公聊 6.发送文字,文件. 7.聊天记录 保存 查询 删除. 8.下线 选做 ...

  8. 基于socket实现的多人聊天室项目(python)

    最近做了一个多人聊天室项目,主要目的是练习和巩固socket编程. 在开始之前,可以先了解一下socket的TCP三次握手和四次挥手. 参考:https://blog.csdn.net/luoyoub ...

  9. JAVASE多人聊天室项目实战

    文章目录 前言 一.服务器端 1.启动服务器端,打开服务器端窗口 2.创建ServerSocket,循环监听客户端连接 3.存储连接到服务器端的多个Socket(集合) 4.接收客户端发送的信息(多线 ...

最新文章

  1. 成功解决ModuleNotFoundError: No module named 'urllib2'
  2. More Effective C# Item3 : 运行时检查泛型参数的类型并提供特定的算法
  3. Python如何实现24个微信大群(共万人)同步转发直播?
  4. 排座椅(洛谷-P1056)
  5. 年薪30万的Java架构师必会的springboot面试题
  6. eclipse中自定义videoview类_android控件之VideoView建立自己的播放器
  7. 想学IT的必看!深度解析跳槽从开始到结束完整流程万字长文!
  8. GML可视化学习(三)
  9. python 获取麦克风声音_python调用pyaudio使用麦克风录制wav声音文件的教程
  10. scara机器人动荷载_【机器人在线】SCARA机械结构参数计算说明 下
  11. apk与服务器的ip在哪个文件夹,手机中apk文件存放目录在哪
  12. 【文件处理】python 在线预览文件_OFFICE 文档转换为html在线预览
  13. PyQt4对话框(dialog类型介绍)
  14. 移动端下拉刷新,兼容ios,Android及微信浏览器
  15. 13.荔枝派 zero(全志V3S)-gadget Mass Storage虚拟U盘
  16. 简单通俗的说一下什么是面向过程和面向对象
  17. KiTTY/cnKiTTY与PuTTY/cnPuTTY差异和使用的简单说明~~
  18. 两个List数据集合合并成一个List
  19. 黑金开发板在NiosII环境下烧写image到flash失败的解决办法
  20. 快一年没用工作了继续学习编程中。

热门文章

  1. google海底光缆图_Google领头建造横跨太平洋海底光缆PLCN:连接香港,120Tbps
  2. 计算机专业春季高考可以报的本科学校,春季高考可以上本科吗 可以报考的学校有哪些...
  3. 建设智慧城市的十大反思
  4. 字节跳动创始人张一鸣演讲
  5. 意外被裁,逆境中意外面过阿里3+1,成功拿下阿里Java岗P6 offer
  6. Centos7.6 Install GMT
  7. 平分七筐鱼c语言y,C语言平分7筐鱼代码及解析
  8. Java解决时间小时时差问题
  9. 计算机软件优化,系统优化
  10. Kindle阅读器(KPW、KV、KO)怎么导入电子书?