qq聊天項目使用簡介:
通過之前的java學習,寫了一個仿QQ的聊天程序,主要實現的功能有註冊、登錄、好友列表、發送文字、圖片、文件、表情。
項目環境配置
- 軟件開發工具:eclipse
- 項目結構:客戶端/服務器結構
功能實現:
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
-下載地址
有什麼問題或者建議歡迎在下方留言!