日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

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

發布時間:2025/3/12 java 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java仿聊天室项目总结_Java团队课程设计-socket聊天室(Day4总结篇) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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总结篇)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。