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