吳翠鴻
(山西水利職業(yè)技術(shù)學(xué)院 山西 運(yùn)城 044004)
隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,網(wǎng)絡(luò)信息通訊工具以及成為了人們平時(shí)交流的重要工具,因其本身具有通信速度快、成本低以及方便快捷的有點(diǎn),而被廣泛使用,因此本文希望能夠設(shè)計(jì)出一款操作簡(jiǎn)單、界面友好的聊天工具,從而更好的解決電話(huà)費(fèi)用高昂、單線(xiàn)程通信等問(wèn)題。
網(wǎng)絡(luò)聊天軟件的設(shè)計(jì)過(guò)程中主要使用了C/S結(jié)構(gòu)。C/S結(jié)構(gòu)是現(xiàn)在應(yīng)用相對(duì)較為廣泛的網(wǎng)絡(luò)編程模型,一般的情形下,服務(wù)器會(huì)以程序?yàn)橹行倪\(yùn)行,以實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)端口的監(jiān)控。如果用戶(hù)向服務(wù)器提出了請(qǐng)求,服務(wù)器就會(huì)立即啟動(dòng)相對(duì)應(yīng)的程序進(jìn)行應(yīng)答,同時(shí)服務(wù)器還能保持對(duì)終端工具的服務(wù)端口實(shí)施監(jiān)聽(tīng),實(shí)現(xiàn)多個(gè)用戶(hù)使用單個(gè)服務(wù)器的目的。
設(shè)計(jì)網(wǎng)絡(luò)聊天系統(tǒng),首先要設(shè)計(jì)多線(xiàn)程服務(wù)器,這樣才能同時(shí)為更多的用戶(hù)提供相應(yīng)的功能。設(shè)計(jì)的過(guò)程中服務(wù)器還需要具備監(jiān)聽(tīng)客戶(hù)端的權(quán)限,這樣服務(wù)就可以隨時(shí)接受和轉(zhuǎn)送用戶(hù)提出的要求,并未用戶(hù)發(fā)出信息。
設(shè)計(jì)網(wǎng)絡(luò)聊天系統(tǒng)的之初,客戶(hù)端可以發(fā)送相關(guān)信息到用戶(hù)那里,顯示出聊天功能的相關(guān)界面,以及人員在線(xiàn)的具體情況。同時(shí)用戶(hù)還可以隨時(shí)退出聊天系統(tǒng),并具備接受與發(fā)送等功能。
操作系統(tǒng)的過(guò)程中具體為以下兩個(gè)步驟:第一步,用戶(hù)要在系統(tǒng)信息的注冊(cè)界面中輸入年齡、性別、密碼、名稱(chēng)等重要信息。第二步,用戶(hù)需要完成登錄以檢驗(yàn)注冊(cè)時(shí)的用戶(hù)名與密碼。成功登錄之后,列表中就會(huì)馬上出現(xiàn)相關(guān)信息,這時(shí)用戶(hù)只要點(diǎn)擊聊天對(duì)方的頭像,就會(huì)顯示出對(duì)話(huà)框。
服務(wù)器接收到用戶(hù)的信息,就會(huì)依照協(xié)議將這些信息分成群發(fā)信息或者是私人信息,換言之,從客戶(hù)端OutputStream當(dāng)中得到相應(yīng)的信息,可以為客戶(hù)從中選出正確的信息,然后客戶(hù)端會(huì)提示信息接收方的客戶(hù)端名稱(chēng),此時(shí),接收信息的客戶(hù)端就可以監(jiān)聽(tīng)I(yíng)nputStream流。
該系統(tǒng)數(shù)據(jù)表專(zhuān)門(mén)用來(lái)存儲(chǔ)用戶(hù)在注冊(cè)的時(shí)候所填寫(xiě)的個(gè)人信息,包括了密碼、用戶(hù)名、性別以及年齡等。注冊(cè)成功以后,用戶(hù)能夠?qū)ψ约核蟼鞯膱D像進(jìn)行修改。
Java是一種基本的設(shè)計(jì)語(yǔ)言,主要在Windows7/XP/2000平臺(tái)上設(shè)計(jì)。IP/TCP是現(xiàn)在聊天系統(tǒng)普遍使用的互聯(lián)網(wǎng)協(xié)議,設(shè)計(jì)網(wǎng)絡(luò)編程從本質(zhì)上可以理解為,與計(jì)算機(jī)與網(wǎng)絡(luò)協(xié)議實(shí)現(xiàn)通信。C/S結(jié)構(gòu)是現(xiàn)階段應(yīng)用較為廣泛的編程形式,一個(gè)IP地址可以確定唯一的一個(gè)Socket,主要功能是連接服務(wù)器與客戶(hù)端的C/S網(wǎng)絡(luò)聊天模型。見(jiàn)圖1。
C/S網(wǎng)絡(luò)聊天系統(tǒng)的設(shè)計(jì)過(guò)程中,服務(wù)器的主要功能為保障進(jìn)程的高效運(yùn)行。并接受客戶(hù)發(fā)送的請(qǐng)求信息。單個(gè)服務(wù)器一般都可以同時(shí)管理多個(gè)客戶(hù)端,Java系統(tǒng)在設(shè)計(jì)網(wǎng)絡(luò)聊天系統(tǒng)時(shí),會(huì)依據(jù)多線(xiàn)程形式來(lái)完成編程。多線(xiàn)程形式的主要特點(diǎn)為,可以最大限度的發(fā)揮出服務(wù)器的工作效率,同時(shí)還具有完善服務(wù)器的重要功能,并依據(jù)Java Swing技術(shù)開(kāi)展設(shè)計(jì)用戶(hù)界面的工作。Java Socket需要在連接服務(wù)器的過(guò)程中合理使用其功能,從根本的性質(zhì)上來(lái)看,Socket可以理解成為一部分的雙向通訊程序,并且具有發(fā)送請(qǐng)求與接受請(qǐng)求的功能。設(shè)計(jì)聊天系統(tǒng)時(shí)借助這個(gè)功能可以很好的實(shí)現(xiàn)數(shù)據(jù)交換。ServerJava服務(wù)器的終端文件中需要重新建立server類(lèi),并以此為主類(lèi)的服務(wù)器,同時(shí)依據(jù)Java.net包實(shí)現(xiàn)連接功能,其中TCP面向協(xié)議的Server Socket類(lèi)也是主要應(yīng)用程序。
C/S聊天系統(tǒng)的設(shè)計(jì)中,發(fā)送請(qǐng)求是客戶(hù)端的主要的功能。比如客戶(hù)端發(fā)送出請(qǐng)求之后,服務(wù)器就會(huì)及時(shí)的響應(yīng)客戶(hù)端所發(fā)出的請(qǐng)求,為其發(fā)送對(duì)應(yīng)的連接以完成一系列的操作。在設(shè)計(jì)網(wǎng)絡(luò)聊天系統(tǒng)的過(guò)程中,非常依賴(lài)于Java Swing技術(shù),其主要功能就是對(duì)圖形用戶(hù)界面進(jìn)行設(shè)計(jì),并在連接服務(wù)器時(shí),合理的運(yùn)用Java.net,其中也包括了那些面向TCP協(xié)議的Server Socket,有一項(xiàng)名為Client.Java的服務(wù)器端文件,可以在文件當(dāng)中構(gòu)建Client.類(lèi),作為服務(wù)器主類(lèi),進(jìn)而實(shí)現(xiàn)兩個(gè)客戶(hù)端的合理啟動(dòng)。

圖1 網(wǎng)絡(luò)聊天模型示意圖
本文主要對(duì)基于Java平臺(tái)的網(wǎng)絡(luò)聊天系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)展開(kāi)了研究工作,在該系統(tǒng)當(dāng)中用戶(hù)登錄以后,能夠?qū)崿F(xiàn)信息的發(fā)送。雖然相較于大型的聊天系統(tǒng)而言,本文所創(chuàng)立的系統(tǒng)在功能上還有很大提升的空間,可是已經(jīng)基本上具備了基本的聊天功能,使用Java平臺(tái)構(gòu)建網(wǎng)絡(luò)聊天系統(tǒng),為以后的網(wǎng)絡(luò)聊天系統(tǒng)設(shè)計(jì)以及發(fā)展具有一定的參考價(jià)值。
[1]周波.基于Java平臺(tái)的網(wǎng)絡(luò)聊天系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].數(shù)碼世界,2016(4):4-4.
[2]施滔滔,郭姝,崔曉鵬,等.基于Java平臺(tái)的網(wǎng)絡(luò)聊天系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2009,5(9X):7415-7416.