摘 要:本文研究的網(wǎng)絡(luò)聊天系統(tǒng)主要包括一個網(wǎng)絡(luò)聊天服務(wù)器程序和一個網(wǎng)絡(luò)聊天客戶程序兩個方面,通過套接字(socket)來連接發(fā)送消息,同時通過直接繼承Thread類來建立多線程,使得更多的人參與聊天,從而拉近人與人之間的距離,實現(xiàn)消息最大資源共享。真正實現(xiàn)溝通零距離。
關(guān)鍵詞:網(wǎng)絡(luò)編程;即時通訊;套接字;多線程
中圖分類號:TP311.10
自從上世紀(jì)中葉第一臺計算機誕生以來,計算機越來越走進人們的生活當(dāng)中,特別是隨著計算機網(wǎng)絡(luò)的發(fā)展,把全世界的人們緊密的聯(lián)系在一起,大大的擴展了計算機的功能,人們越來越離不開計算機了。如今,作為網(wǎng)絡(luò)應(yīng)用之一的聊天工具,越來越受到人們的歡迎和重視。即時通訊軟件使人與人的溝通突破時空極限,突破環(huán)境極限,使自我突破心理極限。作為使用頻率最高的網(wǎng)絡(luò)軟件,即時通訊已經(jīng)突破了作為技術(shù)工具的極限,被認為是現(xiàn)代交流方式的象征,并構(gòu)建起一種新的社會關(guān)系,通過對聊天工具的開發(fā),我們將了解計算機如何通過網(wǎng)絡(luò)相互通信以及在此相互通信的基礎(chǔ)上實現(xiàn)的應(yīng)用程序級的協(xié)議。
1 需求分析
根據(jù)用戶了解和市場需求,所以此系統(tǒng)主要分為兩大部分:一是客戶端,另一部分是服務(wù)器端。
1.1 客戶端方面設(shè)置
客戶端模仿QQ聊天系統(tǒng),實現(xiàn)簡單的QQ功能:注冊賬號、登陸QQ、查找好友、添加好友、刪除好友、聊天功能、傳輸文件功能。
(1)注冊賬號。用戶通過客戶端向服務(wù)器申請一個新的JAVAQQ賬號,主要輸入自己的的一些基本資料,如昵稱(nickname)、郵箱(E-MAIL)、密碼(password)、個性簽名(personalixed signed),即可申請賬號;(2)登陸QQ。即是用戶通過自己申請的賬號,想服務(wù)端請求登入,服務(wù)端驗證通過,則可以進入JAVAQQ界面,如果密碼或賬號出錯,則提示并返回登陸界面;(3)查找好友:。用戶進入QQ后,通過查找按鈕查找自己需要的好友,其中查找有兩種方式,一是查看所有在線用戶,而是通過JAVAQQ賬號查找;(4)添加好友。用戶通過查找出自己需要的客戶,向服務(wù)器申請將他們添加為自己的好友,服務(wù)器通過添加好友申請發(fā)送請求,雙方互添好友;(5)刪除好友。在現(xiàn)實中,用戶不需要某個好友時,可以向服務(wù)器發(fā)送刪除好友申請,服務(wù)器通過申請,刪除自己的好有成功;(6)聊天功能。顧名思義,兩用戶之間進行文字的交流;(7)文件傳輸。用戶向另一用戶傳輸文件,一開啟本系統(tǒng),監(jiān)聽系統(tǒng)就會啟動,查看是否有好友發(fā)送傳輸請求,當(dāng)雙方需要傳輸文件時,用戶需鍵入目標(biāo)的IP和端口,對方拒絕接受則關(guān)閉系統(tǒng)退出,對方接受發(fā)送請求,則打開一新窗口填入存儲位置,發(fā)送完成時,提示用戶已發(fā)送,退出系統(tǒng)。
1.2 服務(wù)器端設(shè)置
服務(wù)器端主要實現(xiàn)的功能是開啟(關(guān)閉)服務(wù)器、配置文件、用戶管理、在線用戶管理、日志顯示管理等。(1)開啟(關(guān)閉)服務(wù)器。打開或者關(guān)閉服務(wù)器連接;(2)文件配置。對JAVAQQ的號碼進行管理,即生成一個新的JAVAQQ號碼位數(shù)、屏蔽號碼保存日志等;(3)用戶管理。顯示所有的JAVAQQ用戶,查詢JAVAQQ用戶;也分為兩種查找一是按JAVAQQ號碼,另一個是按昵稱查找。刷新用戶列表;(4)群發(fā)消息。即群發(fā)系統(tǒng)廣播消息,只針對在線用戶;(5)日志顯示。顯示用戶登入退出的基本消息。
2 功能設(shè)計
2.1 功能劃分
(1)服務(wù)器端功能。啟動和關(guān)閉服務(wù),配置屬性文件,用戶管理,在線用戶查詢,查看系統(tǒng)日志;(2)客戶端功能。網(wǎng)絡(luò)設(shè)置,注冊賬號,查找好友,添加好友,刪除好友,查看好友資料,與好友進行文本聊天,給好友傳輸文件等。
2.2 功能描述
2.2.1 客戶端
(1)用戶初始化模塊。本模塊主要完成的任務(wù)是用戶通過賬號、密碼登陸系統(tǒng),若數(shù)據(jù)在數(shù)據(jù)庫中不存在,則需要用戶進行注冊;(2)注冊操作。1)功能描述:注冊一個新的JAVAQQ賬號。2)輸入要素:昵稱、E-Mail、密碼、性別、姓名、個性簽名。3)處理流程:通過用戶名、密碼寫入數(shù)據(jù)庫;(3)查找操作。1)功能描述:查詢用戶輸入的用戶名、密碼在數(shù)據(jù)據(jù)中是否有記錄。2)輸入要素:用戶名、密碼。3)處理流程:通過用戶名,密碼到數(shù)據(jù)庫中查詢該用戶的信息;(4)聊天功能。1)功能描述:通過用戶加入的好友與好友進行點對點聊天。2)輸入要素:用戶聊天消息。3)處理流程:通過服務(wù)器將用戶聊天消息進行傳遞;(5)傳輸文件。1)功能描述:通過好友提供的IP給對方點對點的傳輸文件。2)輸入要素:IP地址。3)處理流程:TransFileManger類繼承了Thread類,實現(xiàn)多線程,并通過傳輸線程(SocketThread)的數(shù)量進行文件傳輸。
2.2.2 服務(wù)器端的具體描述
(1)用戶初始化模塊。本模塊主要完成的任務(wù)是系統(tǒng)管理員開啟服務(wù)器端。1)功能描述:啟動服務(wù)器。2)輸入要素:無。3)處理流程:調(diào)用StartServer()和StopServer()方法來啟動和關(guān)閉服務(wù)器;(2)系統(tǒng)環(huán)境配置功能。1)功能描述:設(shè)置服務(wù)器的端口、生成JAVAQQ的數(shù)位、屏蔽號碼、備份日志等。2)輸入要素:服務(wù)器端口、生成JAVAQQ的最小數(shù)位和最大數(shù)位、要屏蔽的號碼、日志的備份、數(shù)據(jù)方式的選擇1文件方式,2數(shù)據(jù)庫方式。3)處理過程:調(diào)用setProp()方法設(shè)置配置文件;(3)用戶管理功能。1)功能描述:該模塊主要的功能是進行好友的查詢,刷新用戶列表、添加新用戶。2)輸入要素:用戶號碼、用戶昵稱。3)處理流程:通過用戶昵稱或者號碼到數(shù)據(jù)庫中查詢該用戶信息;(4)在線用戶管理功能。1)功能描述:顯示目前在線的JAVAQQ用戶,通過用戶的賬號查詢用戶是否在線,刷新在線用戶的列表、并通過服務(wù)器向所有在線用戶發(fā)送系統(tǒng)廣播。2)輸入要素:用戶的JAVAQQ賬號、消息文本。3)處理流程:選擇用戶的賬號,查看賬號的狀態(tài);(5)文件傳輸管理。1)輸入流程:所傳輸?shù)奈募奈募痛笮 ?)處理流程:由文件發(fā)送者發(fā)起文件傳輸,他首先發(fā)送文件名,文件大小,驗證消息等信息給文件接收者。文件接收者收到文件信息和發(fā)送者信息,決定是否接收,如不接收,則發(fā)送拒絕接收消息給文件發(fā)送者,文件傳輸結(jié)束。如同意接收,發(fā)送同意接收消息和文件傳輸起始字節(jié)(用于斷點續(xù)傳)給發(fā)送者。發(fā)送者開始發(fā)送文件數(shù)據(jù)包,直到最后一個文件數(shù)據(jù)包,發(fā)送者在最后一個文件數(shù)據(jù)包上加上標(biāo)記。接收者識別最后一個文件數(shù)據(jù)包,文件傳輸成功。
3 結(jié)束語
與已成規(guī)模的騰訊QQ相比,該系統(tǒng)還存在著太多的不足,因為是本文研究的網(wǎng)絡(luò)聊天系統(tǒng)功能方面比較簡單,缺少部分功能:如視頻、語音聊天等附屬功能。但相對的來說此聊天系統(tǒng)更簡約,操作方便,且可以在局域網(wǎng)內(nèi)實現(xiàn)網(wǎng)絡(luò)聊天功能。
參考文獻:
[1]葉核亞.JAVA程序設(shè)計使用教程(第二版)[M].北京:電子工業(yè)出版社,2008.
[2]孫衛(wèi)琴.JAVA網(wǎng)絡(luò)編程精解[M].北京:電子工業(yè)出版社,2007.
作者單位:廣西科技大學(xué)鹿山學(xué)院,廣西柳州 545616