任 琴,孔令慧,秦 冰
(陸軍工程大學(xué) 軍械士官學(xué)校,湖北 武漢 430075)
本聊天室的開(kāi)發(fā)是在JAVA的平臺(tái)上實(shí)現(xiàn)的,Java語(yǔ)言是一種適用于網(wǎng)絡(luò)編程的語(yǔ)言,它的基本結(jié)構(gòu)與C++極為相似,但卻簡(jiǎn)單得多。它集成了其它一些語(yǔ)言的特點(diǎn)和優(yōu)勢(shì),又避開(kāi)了它們的不足之處。本次系統(tǒng)開(kāi)發(fā)選用的操作系統(tǒng)是Windows XP;開(kāi)發(fā)工具為MyEclipse 7.0+命令窗口;語(yǔ)言程序主要是JAVA語(yǔ)言;Java版本為Java jdk1.6集合jre6。
在Internet上的聊天程序一般都是以服務(wù)器提供服務(wù)端連接響應(yīng),使用者通過(guò)客戶(hù)端程序登錄到服務(wù)器,就可以與登錄在同一服務(wù)器上的用戶(hù)交談,這是一個(gè)面向連接的通信過(guò)程。因此,程序要在TCP/IP環(huán)境下,實(shí)現(xiàn)服務(wù)器端和客戶(hù)端兩部分程序,服務(wù)器端和客戶(hù)端通訊流程如1所示,工作原理如圖2所示。
圖1 通信流程
(1)服務(wù)器端工作流程:服務(wù)器端通過(guò)socket()系統(tǒng)調(diào)用創(chuàng)建一個(gè)Socket數(shù)組后(即設(shè)定了接受連接客戶(hù)的最大數(shù)目),與指定的本地端口綁定bind(),就可以在端口進(jìn)行偵聽(tīng)listen()。如果有客戶(hù)端連接請(qǐng)求,則在數(shù)組中選擇一個(gè)空Socket,將客戶(hù)端地址賦給這個(gè)Socket。然后登錄成功的客戶(hù)就可以在服務(wù)器上聊天了。
(2)客戶(hù)端工作流程:客戶(hù)端程序相對(duì)簡(jiǎn)單,只需要建立一個(gè)Socket與服務(wù)器端連接,成功后通過(guò)這個(gè)Socket來(lái)發(fā)送和接收數(shù)據(jù)就可以了。
圖2 客戶(hù)端與服務(wù)器端的工作原理流程
(3)聊天室的功能簡(jiǎn)介。①客戶(hù)端功能:a.登錄;b.注冊(cè);c.公共聊天;d.悄悄話(huà);②服務(wù)器端功能:a.監(jiān)聽(tīng);b.踢人;c.幫助;d.開(kāi)啟/關(guān)閉服務(wù)器。
該聊天系統(tǒng)利用基于TCP協(xié)議的Socket和多線程技術(shù)能夠很好地實(shí)現(xiàn)基本功能,它采用了典型的C/S架構(gòu),系統(tǒng)著重研究并實(shí)現(xiàn)了網(wǎng)絡(luò)應(yīng)用的部分。根據(jù)實(shí)現(xiàn)的情況看,基本滿(mǎn)足了結(jié)構(gòu)化、界面友好、速度快、安全性以及穩(wěn)定性等特點(diǎn),其功能也符合用戶(hù)基本需求,具有較友好的聊天界面生成效果,以及流暢的網(wǎng)絡(luò)通信效果。
目前本聊天系統(tǒng)還有待完善的功能如下:①?zèng)]有實(shí)現(xiàn)文件傳輸?shù)墓δ?,這個(gè)對(duì)于人們?cè)絹?lái)越高的需求方面還是一個(gè)缺陷。②注冊(cè)界面相對(duì)比較單一,不夠詳細(xì),不能選擇頭像、注冊(cè)性別、個(gè)性簽名等等。③聊天內(nèi)容不能保存,退出聊天室之后就找不到之前的聊天內(nèi)容,如果在聊天過(guò)程中有比較重要的內(nèi)容需要更慎重的記錄。④不能像QQ那樣發(fā)送圖片表情,而且隨意添加在聊天內(nèi)容的任何位置。