張玉,賈遂民,鄭桂萍
(鄭州師范學(xué)院信息科學(xué)與技術(shù)學(xué)院,河南 鄭州 450044)
聊天系統(tǒng)目前使用范圍非常廣泛。但是很多企業(yè)為了管理方便和防止重要數(shù)據(jù)泄露,會選擇自己獨有的通訊系統(tǒng)作為與外界交流、溝通的工具。本系統(tǒng)作為一種聊天軟件,它的開發(fā)不但考慮了社會型企業(yè)專業(yè)化管理的需求和信息安全保障需求,而且成本低、效率高、應(yīng)用范圍廣、兼容性強(qiáng)。
Socket 套接字是一條通信鏈的句柄,TCP 連接是兩個端點的連接,而這個端點就是抽象的Socket,套接字是由IP 地址加上端口號組合而成的[2]。關(guān)于Socket在本系統(tǒng)中的工作原理如圖1所示。
圖1 Socket工作原理圖
Socket是一種接口,主要用于網(wǎng)絡(luò)編程方面,也是網(wǎng)絡(luò)通訊的基石。在Client/Server 模式下,按照套接字在網(wǎng)絡(luò)中所起的不同作用來看,可以將套接字分為客戶機(jī)套接字Socket和服務(wù)器端套接字ServerSocket。套接字ServerSocket 建立后,就一直監(jiān)聽本機(jī)的預(yù)先設(shè)定的端口。當(dāng)套接字Socket 根據(jù)服務(wù)器端主機(jī)IP,地址進(jìn)行綁定并建立連接,數(shù)據(jù)流就通過客戶端與服務(wù)器之間的Socket 連接將數(shù)據(jù)傳輸?shù)椒?wù)器端,從而實現(xiàn)信息的傳遞。當(dāng)數(shù)據(jù)信息傳輸完成時,服務(wù)器套接字和客戶端套接字要分別關(guān)閉。
根據(jù)需求分析,本網(wǎng)絡(luò)通訊系統(tǒng)主要由客戶端和服務(wù)器兩個部分組成的。圖2 展示的是系統(tǒng)的整體功能設(shè)計圖。
圖2 網(wǎng)絡(luò)聊天系統(tǒng)的整體功能圖
⑴客戶端:主要功能有用戶的注冊與登錄、設(shè)置服務(wù)器IP、添加或查看好友,以及好友之間互發(fā)文本消息等。用戶可以向服務(wù)器端發(fā)送各種不同格式的信息包來要求服務(wù)器返回不同的結(jié)果。用戶可以發(fā)送注冊/登錄的請求,同時客戶端還實現(xiàn)了上/下線通知、好友列表顯示、消息的編輯、發(fā)送/接收、多用戶通信等功能。
⑵服務(wù)器端:此模塊的流程大致為:首先進(jìn)入可視化窗口,開啟服務(wù)器,監(jiān)聽客戶端,接受客戶端發(fā)送的請求消息并與客戶端建立連接;驗證用戶賬號和密碼是否合法。若用戶合法,則服務(wù)器為客戶端開啟線程,監(jiān)聽用戶的動態(tài),實現(xiàn)消息的中轉(zhuǎn);如不合法,則繼續(xù)處于原始狀態(tài),以便于能夠即時的響應(yīng)用戶的請求。
本通信系統(tǒng)完成了驗證用戶信息是否合法,驗證完成后的操作可根據(jù)窗口提示來進(jìn)行。當(dāng)用戶登錄成功進(jìn)入好友列表界面,用戶就可以互發(fā)消息。通訊結(jié)束之后,用戶關(guān)閉聊天界面,退出客戶端,關(guān)閉服務(wù)器,退出系統(tǒng)。流程圖如圖3所示。
圖3 基于Socket的網(wǎng)絡(luò)聊天系統(tǒng)總體流程圖
本系統(tǒng)采用C/S 結(jié)構(gòu)模式,為了減少服務(wù)器的負(fù)擔(dān)、方便程序的設(shè)計,可以添加數(shù)據(jù)庫作為數(shù)據(jù)信息存貯的地方。根據(jù)功能模塊,設(shè)計出三個實體:用戶注冊實體、用戶登錄實體和通信記錄實體,其E-R 圖如圖4所示。
圖4 數(shù)據(jù)庫總體E-R圖
根據(jù)系統(tǒng)E-R 圖設(shè)計知系統(tǒng)數(shù)據(jù)庫中包含三個數(shù)據(jù)表:用戶注冊信息表、用戶登錄信息表、通信記錄表。
系統(tǒng)主要包含服務(wù)器與客戶端。服務(wù)器端主要處理開啟服務(wù)器、用戶上線和轉(zhuǎn)發(fā)消息三個主要功能,其結(jié)構(gòu)如圖5所示。
圖5 服務(wù)端結(jié)構(gòu)圖
客戶端主要包括一些簡單的界面,實現(xiàn)人工交互,并進(jìn)行請求響應(yīng),其結(jié)構(gòu)如圖6所示。
圖6 客戶端總體結(jié)構(gòu)圖
本系統(tǒng)中的客戶端與服務(wù)器可以分別放到兩個獨立的計算機(jī)上運行,只要知道對應(yīng)的IP 和端口號就可以達(dá)到真實的聊天功能,具有很好的靈活性。系統(tǒng)的主要特性是:靈活的移植性,簡單的界面及時、有效、動態(tài)地完成數(shù)據(jù)信息傳遞;有效地處理客戶的不同請求,易于維護(hù)與更新。本系統(tǒng)使用服務(wù)器處理消息包,然后中轉(zhuǎn),所以當(dāng)用戶量較大時可能導(dǎo)致服務(wù)器壓力較大,影響即時通信的性能,這在后續(xù)階段會加以改進(jìn)與優(yōu)化。