Java仿QQ聊天系統Eclipse+MySql實現

qq聊天項目使用簡介:

通過之前的java學習,寫了一個仿QQ的聊天程序,主要實現的功能有註冊、登錄、好友列表、發送文字、圖片、文件、表情。

項目環境配置

  1. 軟件開發工具:eclipse
  2. 項目結構:客戶端/服務器結構

功能實現:

a. 登錄註冊
b.可與不同好友在線聊天
c.羣聊
d. 能夠實時顯示聊天記錄
e.修改資料

實現效果:

服務器界面
在這裏插圖片描述
登錄界面
在這裏插入圖片描述
註冊界面
在這裏插入圖片描述
登錄到主界面
在這裏插入圖片描述
在這裏插入圖片描述
當一方發送消息時對方會彈出提示框
在這裏插入圖片描述
表情及圖片的發送
在這裏插入圖片描述

數據庫用戶文件
在這裏插入圖片描述

此項目包含服務器端和客戶端:

1. 服務器端的任務:
         服務器端應當創建一個ServerSocket對象,而且需要一直進行偵聽是否有Client端連接或者斷開連接。Server端應該是一個發送信息的核心,所有Client端的消息都會被傳到Server端,由Server端根據要求進行分發信息,以上就是服務器端最主要的兩個任務。不難看出,服務器端的任務並不是很複雜。

2. 客戶端的任務:
         客戶端應該完成的工作包括:與Server端建立通信信道,向Server端發送消息,接收來自服務器的信息。相對服務器而言,客戶端的任務更加的簡單化,有了以上的簡單分析,可以知道,解決了上述的四個問題,即完成了該聊天系統的核心。

客戶端包含以下主要功能:

用戶的註冊、用戶的登錄、、好友列表、羣列表、聊天記錄的查看、私聊、羣聊、發送文件、圖片等。

服務器端完成以下主要功能:

建立連接、操作數據庫和監聽客戶。

        客戶端和服務器必須保持隨時隨地的連接。這有別於普通Web瀏覽的連接方式,在使用瀏覽器對服務器進行訪問時,應該先由客戶端發出HTTP協議,然後服務器響應處理這個客戶端的響應,再返回處理結果,請求(Request)和響應(Response)是一種一對一的前後因果關係。而在基於Socket的聊天系統中,客戶端發出聊天信息的同時,客戶端也在接受服務器發送過來的其他人的聊天信息。因次可以發現,請求和響應不存在那種前後對應的關係,是兩種分別獨立進行的進程。因爲服務器任何時候都可能發送信息到客戶端。因此,客戶端和服務器一旦進行建立連接,必須得讓服務器在以後發送中尋找並定位到這個連接。在速度性能方面,聊天系統提出了更高的要求。在網絡連接的薄弱環節I/O通信方面,要求能夠實現無堵塞地、流暢地數據讀寫。在面對幾百個甚至更多的客戶端同時發出連接信息的情況下,服務器要求能夠保持高性能的併發處理機制,迅速地完成這幾百個併發請求的處理和發送任務。

總結:

  • 本代碼是跟着GitHub大佬的代碼做的,所以大部分圖片也都是這位大佬的素材,最開始,很多東西我不能理解,最終都是自己一點點摸索出來,雖然有很大部分功能並未實現,但值得一學習,感興趣的朋友在我的百度網盤下載源碼,附帶數據庫文件!https://pan.baidu.com/s/1av0YQXISOFRuFa481ceGKw

-下載地址

有什麼問題或者建議歡迎在下方留言!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章