郝勝華+張素華
摘要:該文詳細描述了基于JAVA語言的即時通信系統(tǒng)的設計過程。本設計由客戶端和服務器端兩大部分構(gòu)成,采用傳統(tǒng)的C/S設計模式,主要通過JAVA中的Socket協(xié)議進行通信。本設計簡單,易懂,通過簡單的服務器端程序和客戶端程序來實現(xiàn)即時通信,具有一定的使用價值。
關(guān)鍵詞:JAVA;C/S;Socket;即時通信
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2017)14-0097-03
在我國,隨著經(jīng)濟文化的發(fā)展,信息時代的飛速發(fā)展,中國已經(jīng)成為世界第一大互聯(lián)網(wǎng)用戶國家。生活中已經(jīng)離不開網(wǎng)絡了,而與我們最密切相關(guān)的網(wǎng)絡工具就是即時通信軟件,如人手一個賬號的QQ,微信,以及中國移動的飛信等,大量的社交工具幫助著我們與朋友,與社會各地的人的交流。隨著網(wǎng)絡速度的提升,尤其是3G時代到來之后,我們對即時通信的要求又提升了一個高度,我們不在依靠于文字去傳遞我們的語言,而是漸漸通過語音,甚至是視頻直接與我們想要溝通的人直接進行通信。
1需求分析
1.1客戶端的主要任務
客戶端需要實現(xiàn)注冊,即時聊天,相互之間收發(fā)文件,好友上、下線提醒等功能。
1)注冊
服務器收到用戶的注冊請求,便開始接受客戶傳遞的信息,如客戶的昵稱,密碼等,接受完畢后,通過程序中properties類進行添加記錄,如添加成功,客戶收到服務器返回的信息后,便直接返回登錄窗口。
2)登錄
在客戶端,用戶輸入其號碼和密碼,然后建立與服務器的連接,告訴服務器我要登錄,服務器收到后,開始通過properties類進行讀取數(shù)據(jù),然后與用戶輸入的信息進行比對,如果成功,便打開主程序窗口。然后客戶向服務器請求讀取好友名單,服務器收到該請求,從數(shù)據(jù)庫中取出好友列表,然后向客戶端發(fā)送這些信息,客戶收到后就在主窗口顯示好友。
3)聊天室
客戶端首先發(fā)送消息到服務器端,服務器端根據(jù)發(fā)送人信息和接收者信息來轉(zhuǎn)發(fā)。例如服務器接收到一個A發(fā)給B的消息,先判斷B是否已經(jīng)在線,如果在線就將信息發(fā)送過去。如果B不在線則把信息儲存在服務器。
1.2服務器端的主要任務
服務器端應當建立一個ServerSocket,并且不斷進行偵聽是否有客戶端連接或者斷開連接(包括判斷沒有響應的連接超時)。服務器端應當是一個信息發(fā)送中心,所有客戶端的信息都傳到服務器端,由服務器端根據(jù)要求分發(fā)信息。
1)建立一個ServerSocket,并不斷的監(jiān)聽客戶端傳遞過來的Socket信息。
2)服務端還應該是個信息轉(zhuǎn)發(fā)中心,接收到客戶端傳遞過來的信息在進行轉(zhuǎn)發(fā)送。
2系統(tǒng)設計
本設計是為了實現(xiàn)簡單的網(wǎng)絡聊天功能,大致分為功能設計,工作原理圖,系統(tǒng)各功能模塊三部分,
2.1功能設計
2.1.1登陸界面功能表
登陸界面用到的控件及控件說明如表1所示。
2.1.2注冊界面功能表
注冊界面用到的控件及控件說明如表2所示。
2.1.3聊天界面功能表
聊天室界面用到的控件及控件說明如表3所示。
2.2 JAVA聊天系統(tǒng)各功能模塊
本系統(tǒng)主要可分為兩大模塊,客戶端模塊和服務器端模塊。
2.2.1客戶端模塊
JAVA中使用套接字十分簡單,JAVA API為處理套接口的通信給我們提供了一個類庫包java.net.Socket使得編寫網(wǎng)絡應用相較容易。客戶端通過創(chuàng)建Socket對象,綁定服務端并設置端口號即可向服務器端發(fā)送和接受消息。
2.2.2服務器端模塊
服務器端通過創(chuàng)建一個ServerSocket并不斷的監(jiān)聽客戶端的請求,采用多線程的方式滿足不同客戶端發(fā)送過來的消息并不斷的處理消息。
3系統(tǒng)主要功能實現(xiàn)
除了實現(xiàn)首頁、登陸和購買界面,還實現(xiàn)了后臺管理及手機新增界面,主要功能實現(xiàn)如圖1,圖2和圖3所示。
4關(guān)鍵技術(shù)及實現(xiàn)方案
4.1服務器關(guān)鍵代碼
服務器端通過創(chuàng)建一個ServerSocket并不斷的監(jiān)聽客戶端的請求,采用多線程的方式滿足不同客戶端發(fā)送過來的消息并不斷的處理消息。
4.2服務器關(guān)鍵代碼
服務器端通過創(chuàng)建一個ServerSocket并不斷的監(jiān)聽客戶端的請求,采用多線程的方式滿足不同客戶端發(fā)送過來的消息并不斷的處理消息。
5結(jié)束語
本設計利用了Swing技術(shù)搭建了系統(tǒng)的登陸界面、注冊界面、聊天室界面,通過程序中的properties類進行用戶數(shù)據(jù)添加和驗證,通過客戶端和服務器端建立Socket連接進行數(shù)據(jù)通信,現(xiàn)在基本完成聊天軟件的功能。