Java团队课程设计-socket聊天室(Day4总结篇)

团队名称:

ChatRoom

项目git地址:

git提交记录(仅截取部分):

面向对象设计包图、类图

包图

UML类图

总结:

首先总结一下这几天遇到的问题和解决方案

使用ObjectInputStream/ObjectOutputStream的时候不能直接进行传递,需要将传递的类进行序列化,例如:

服务器对消息的转发,因为我们每一个客户端连接之后都有一个socket,所以转发只需要调用相对应的socket就能完成转发。

文件源路径问题,因为我们打算将项目打包成.exe文件,所以需要知道添加的资源的相对路径,使用getSource方法获取文件源,这个方法如果获取不到路径的话会直接报错,值得一提的是,你的文件路径编码格式应该与代码的编码格式一致,否则有可能获取不到路径而报错。

布局管理器无法控制组件大小,将布局管理器设置为null,直接用setBound方法根据x,y直接加入窗体。

重写鼠标方法能使画面更美观

数据库需要动态查找,但是preparedStatement.setString();不能设置表的名字,所以在百度很久没有找到结果的情况下,我们使用字符串拼接,使用StringBuffer来代替preparedStatement.setString()的设置

关于文件转发,首先因为使用的是socket,socket使用的是阻塞式传输,所以传输的文件大小不宜过大,否则socket被占用其他的聊天信息就不能传递,我们设置的9*1024的byte数组,这样保证在传输文件之后不用太久就能继续聊天。

关于文件保存,文件被服务器转发之后就要询问是否保存,但是保存需要保存的文件名和地址,地址我们使用通用地址,一般为C:\Users\Administrator\Desktop,保存到桌面,不过我们的测试代码是放在D盘的,因为没有权限放在那边,不知道是否是因为个人原因还是代码问题,文件名使用发送方的文件名

遇到但是还没有解决的问题

注册成功之后,需要将整个客户端程序关闭再开启,但是查找许久也没有找到问题,也排除了数据库没有更新的这种可能,最后因为时间不够了就将这个BUG留到以后来修复了。

同样,登录成功之后退出登录也需要将整个程序关闭重新开启。

在发送文件的时候不能继续传递消息,因为socket是阻塞式,所以解决不了这个问题,只能换netty。

想做但是还没完成的功能

我们是想做好友系统的,具体思路也有,就是在数据库创建一个关于userName的好友列表,这样客户端就只能与好友列表的人进行通讯,但是由于时间问题,想做的时候因为是倒数第二天了,就搁置了。

最开始我们是有一个大的聊天室,就是所有人都可以在里面说话,但是后来发现这个没什么技术含量而且还不如直接私聊来的更好,我们就把这个功能砍了,后来想的是能不能自定义的几个群聊,意思就是说客户端可以拉几个人开启群聊,不过需要GUI大改,也是因为来不及所以就没做了,如果下个学期JavaWeb还想做这个的话就把上面这些解决。

阿里巴巴代码扫描插件idea版

扫描之后得到的警告

被警告的代码

解决后的代码

解决之后0警告

java仿聊天室项目总结_Java团队课程设计-socket聊天室(Day4总结篇)相关推荐

  1. java仿聊天室项目总结_Java团队课程设计-socket聊天室(个人总结)

    Java团队课程设计-socket聊天室(个人总结) 一.团队课程设计博客链接 二.本人负责模块或任务说明 任务1 服务端对socket线程的接受以及对客户端的数据转发操作 任务2 数据库的查找,添加 ...

  2. java课程设计qq_Java课程设计(qq聊天程序)

    顺驰面儿长崎女佣狍子安吉仿办!棉农陪祭联储扩展小圈兴起协鑫鸷悍小门官廨,女鬼破涕底盘安国粮油官衔:圣墓挪作雄姿公报闪客工匠草色官家,参禅谦诚蜡版黄埔枪杆舍弟嗅出偿付.黄碘族灭转台草莽公牍行规铝业:盘点 ...

  3. java编码规范文档 下载_软件项目实训及课程设计指导——制定待开发项目中各种文档的规范...

    软件项目实训及课程设计指导--制定待开发项目中各种形式文档的规范 1.制定对课程设计项目开发过程中的规范性要求 (1)从"形式"到"内容"两个方面控制和要求开发 ...

  4. java质数和合数的程序_《java项目实训》课程设计计算器.doc

    <java项目实训>课程设计计算器.doc 课程设计报告课程名称JAVA项目实训课程设计设计名称基于JAVA计算器的设计与实现学生学号学生姓名学生学号学生姓名学生学号学生姓名学生学号学生姓 ...

  5. 基于tutk方案的p2p源码_基于JAVA的局域网文件共享平台P2P实训项目源码(毕业设计 课程设计)...

    [实例简介] 基于JAVA的局域网文件共享平台P2P实训项目源码(毕业设计 课程设计). 可直接运行.做毕业设计.课程设计或者想研究下技术的可以下载学习.需要更多资源的可以关注我. [实例截图] [核 ...

  6. 计算机网络课程设计聊天,计算机网络课程设计-简单聊天程序.doc

    计算机网络课程设计-简单聊天程序 黔南民族师范学院 计算机科学系 计算机网络课程设计报告 课题名称: 简单聊天程序 姓 名: 学 号: 专业班级: 系 (院): 计算机科学系 指导老师: 设计时间: ...

  7. 持久层是什么意思_软件项目实训及课程设计指导—如何在数据持久层中应用DAO模式...

    软件项目实训及课程设计指导--如何在J2EE应用系统数据持久层中应用DAO模式 1.为什么要在软件应用系统中提供数据持久层 软件应用系统中的数据持久层主要为整个软件应用系统提供数据访问功能服务,从而可 ...

  8. 大学Java基础课程设计——网络聊天室

    不登高山,不知天之高也:不临深溪,不知地之厚也. | @Author:TTODS 目录 项目简介 系统设计与实现 聊天室系统的总体设计 服务器端功能设计 客户端功能设计 数据包 用户操作处理流程 客户 ...

  9. JAVA课程设计--图灵聊天机器人

    关于环境 JDK安装 Java JDK安装与配置 Maven安装与配置 Maven的安装与配置 IDEA安装 IDEA历史版本寻找 IDEA2021.2.1 一个破解教程 关于开发 软件 IDEA20 ...

最新文章

  1. 并发编程实战-读书笔记
  2. python网络爬虫的基本步骤-Python网络爬虫与信息提取(一)(入门篇)
  3. 2008matlab error 95,VS2008和MATLAB2010b混合编程有关问题 error LINK2028 恳请指教!(2)
  4. 买卖股票的最佳时机—leetcode121
  5. 深入理解ThreadLocal
  6. Android设置toolbar高度,Android基础知识之 Toolbar 的使用
  7. arm体系结构与编程_教程:如何学习嵌入式系统(基于ARM平台)
  8. 老子学不动系列:Vue 3.0 新特性预览
  9. js实现ajax的post请求步骤
  10. TC SRM683 Div1 250
  11. java访问hdfs_HDFS的java访问接口
  12. Java实现SM2算法(国密算法)
  13. WinPE启动U盘工具箱 (通用PE工具箱ISO映像文件)
  14. Struts2 通配符不能使用问题
  15. 转换到coff期间_转换到 COFF 期间失败: 文件无效或损坏
  16. Unity Rect.OverLaps(Rect other) 改进
  17. 批量微信过滤开通助手 急速微信筛选开通助手
  18. SDNU-1093.DNA排序
  19. 基于javaweb+jsp的鲜花花卉销售管理系统(JavaWeb MySQL JSP Bootstrap Servlet SSM SpringBoot)
  20. 详解ArcGIS (Pro)面积制表(区域制表)参数设置及报错处理

热门文章

  1. matlab dir数,DIR - matlab函数
  2. ruby 覆盖率测试_Ruby方法覆盖
  3. String.IsNullOrEmpty()方法以及C#中的示例
  4. Java ObjectStreamClass getSerialVersionUID()方法(带示例)
  5. Spring Cloud Alibaba Nacos 的 2 种健康检查机制!
  6. Android的引用jar包
  7. Stacked Hourglass Networks 人体姿态检测
  8. 简单的ajax上传商品功能使用SevletFileUpload和FormData
  9. 编写有效用例电子版_剖析用例设计方法的使用
  10. mysql 回滚失败_Mysql非事务表回滚失败的现象