此为大二《Java程序设计》结课项目考核内容。明明学的专业跟项目内容不符,不知道为什么要学Java Swing,浪费时间?虽说如此,但还是在辣鸡学校的水比老师的示例的基础上作了些更改,完成了Java简易聊天室的项目。项目全部文件(包括素材和源码)已上传到github上:链接,欢迎克隆、交流学习。

JAVA聊天室项目使用简介

一、项目环境

  1. 软件开发工具:Eclipse
  2. JDK:JDK1.8
  3. 数据库:SQL Server 2008 R2(水比老师用的是MySQL,看我写的好,还想叫我把代码改成用跟他同一个数据库的再发他一份,懂的都懂)
  4. 通信协议:TCP协议
  5. 项目结构:客户端/服务端结构
  6. 功能实现:在线离线聊天,消息记录,区别在线离线,注册,记住密码,隐身登录,找回密码,添加删除好友…等等(够你混项目创新展示了)
  7. 项目启动流程:先运行StartServer.java开启服务器,可多次运行ClientLogin.java登录,双击头像即可开启聊天

二、项目代码结构

客户端代码结构:

  • com.yychat.model:

        FriendTreeRender.java//好友列表的渲染模型Message.java//传输中的消息类MessageType.java//消息类型接口User.java//操作用户类UserType.java//用户类型接口
    
  • com.yychat.view

      AddFriend.java//添加好友的窗体ClientLogin.java//登录界面FriendChat.java//聊天界面FriendList.java//好友列表界面PasswordBack.java//找回密码的窗体
    
  • com.yychatclient.control

         ClientReceiverThread.java//客户端接收线程类ManageAllChat.java//用于管理所有聊天ManageAllList.java//用于管理所有好友列表ManageAllThreads.java//用于管理所有客户端线程YYchatClientConnection.java//用于初连接服务端
    

服务端代码结构

  • com.yychat.model

        Message.javaMessageType.javaUser.javaUserType.java
    
  • com.yychatserver.control

         DBUtil.java//用于连接数据库进行数据库操作的工具类ServerReceiverThread.java//服务端线程类ManageAllThreads.java//用于管理所有服务端线程YYchatServer.java//用于被开启服务端和初次连接
    
  • com.yychatserver.view

        StartServer.java//服务端开启与关闭界面,日志界面
    

三、数据库结构

用的是sqljdbc.9.4.0.0,我GitHub中也有给,解压后有适用三个版本jdk的jdbc,若你用的不是jdk1.8记得在Eclipse中重新导入正确的适用的jdbc

表:

  • chatmessage:存放聊天信息
  • tempmessage:存放离线临时信息
  • user:存放用户信息
  • userrelation:存放用户间的好友关系

存储过程:

  • Register:注册操作
  • SeekMessage:搜寻历史聊天记录操作
  • SeekOfflineMessage:搜寻离线临时信息记录
  • SendPasswordEmail:通过邮箱找回密码操作
  • tempTomessage:临时信息转历史信息操作

四、项目运行部分截图如下:








五、注意事项:

  1. 不确定导出的SQL Server有没有导出了数据库邮件配置
    因此找回密码功能可能实现不了,你可以重新配置数据库邮件配置,再修改我的找回密码存储过程就可以了,很简单。
    导入SQL Server中平常需注意的我就不多说啦。
  2. 代码注释可能没写全,也有概率写错,所以借鉴学习下就好,不要盲目全信。

其实仔细端倪代码还有很多需要优化的地方,不过此文章也就想帮帮要挂科的学生罢了哈哈,懂的人也可以看看提建议互相学习哈。若想糊弄老师,混过去,就不要关心太多啦,直接拷贝项目进去就好啦!以后我也会优化好代码持续放上去

Java简易聊天室YYchat相关推荐

  1. 2020暑假集训项目——Java简易聊天室

    经过一周的学习与搬砖,我成功的完成了暑假集训的第一个项目--Java简易聊天室,这里对整个项目做一个总结.(文末附下载地址) 本项目支持的功能: 1.可同时开启多个客户端进行多人聊天: 2.可与在线的 ...

  2. 网络编程之java简易聊天室实现

    最近浅学习了一些关于网络编程方面的知识,视频是跟着狂神学习的,可能学习的不是很深 说到网络,相信大家都对TCP.UDP和HTTP协议这些都不是很陌生,学习这部分应该先对端口.Ip地址这些基础知识有一定 ...

  3. java聊天室程序_Java简易聊天室程序socket

    Java简易聊天室程序socket chatroomdemo.java package com.socket.demo; import java.io.IOException; import java ...

  4. Java WebSocket编程与网页简易聊天室

    在webSocket还未引入前,许多开发人员通过各种非正规手段来完成更新网站的最新信息和到所有当前访问者的任务,其中一种手段就是通过浏览器向服务器轮询更新,但这种手段的网络延迟比较明显,其用户体验比较 ...

  5. java用UDP作简易聊天室

    -------------------------------------------------java用UDP作简易聊天室------------------------------------- ...

  6. 连夜撸了一个简易聊天室

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 分不清轮询.长轮询?不知道什么时候该用websocket还 ...

  7. 撸一个简易聊天室,不信你学不会实时消息推送(附源码)

    点击上方 好好学java ,选择 星标 公众号重磅资讯,干货,第一时间送达 今日推荐:推荐 19 个 github 超牛逼项目!个人原创100W +访问量博客:点击前往,查看更多 分不清轮询.长轮询? ...

  8. Socket编程实现简易聊天室

    1.Socket基础知识 Socket(套接字)用于描述IP地址和端口,是通信链的句柄,应用程序可以通过Socket向网络发出请求或者应答网络请求. Socket是支持TCP/IP协议的网络通信的基本 ...

  9. HTML5 之WebSocket入门demo和简易聊天室

    HTML5 WebSocket WebSocket是HTML5开始提供的一种在单个 TCP 连接上进行全双工通讯的协议. 在WebSocket API中,浏览器和服务器只需要做一个握手的动作,然后,浏 ...

  10. 用eclipse和Tomcat写一个简易聊天室

    本文讲述如何用JAVA语言写一个简易的聊天室 简易聊天室的代码实现,因为笔者还是个正在好好学习努力进步的学生,所以代码可能还有很多可以优化的地方,仅供参考. 开发步骤: 第一部分:UI构建 第一步:编 ...

最新文章

  1. C++何时调用拷贝(复制)构造函数
  2. PXC 部署前置检查
  3. xmu 1254.异或求和
  4. bzoj3482,jzoj3238-超时空旅行hiperprostor【最短路,凸包,斜率优化】
  5. centos中多台主机免密登录_centos免密码使用密钥登录
  6. Ember.js 1.0 RC6 发布,JavaScript 框架
  7. hdu 1018 Big Number(n!求位数)
  8. 开篇~试试word写博客
  9. 电脑重装系统U盘引导不了
  10. Mantis1.2.19 在Windows 平台上的安装配置详解
  11. xshell报initialize flexnet service failed error code 50003错误
  12. flash builder4.6安装
  13. 电脑桌面下栏和计算机里面全黑,电脑桌面下面菜单栏变黑条了,为什么?
  14. html添加空隙,html空隙
  15. python--给图片加水印
  16. 清华山维EPS二次开发基础篇
  17. 爱测未来安全-浅淡流量劫持及应对措施
  18. Spring Data JPA自定义SELECT查询语句,自定义UPDATE修改语句
  19. hcie 论述-mpls lsp
  20. 微信小程序识别二维码参数

热门文章

  1. Excel最强玩法!只用Excel就能做出「王者荣耀」战绩表
  2. [高西泉] 数字信号处理(第四版)程序集
  3. CentOS 7安装串口调试工具 cutecom
  4. win10系统下载 Ghost Win10 RS1 1607 32位纯净3月版
  5. 多种群粒子群 MATLAB,多种群粒子群算法怎么编码啊,楼主小白求大神指导
  6. IP6K防尘试验测试
  7. 自动轮播图html css js代码,js轮播(自动轮播图html代码)
  8. A星算法(A*/A Star)
  9. iOS开发:导入字体库
  10. AI人工智能专业词汇集