一、實(shí)驗(yàn)?zāi)康?/p>
本次實(shí)驗(yàn)需要完成一個(gè)實(shí)時(shí)聊天系統(tǒng)。該系統(tǒng)由聊天客戶端和聊天服務(wù)器組成??蛻舳思纯梢越o指定客戶端發(fā)送信息,也可以把消息廣播給所有客戶端。通過(guò)這個(gè)實(shí)驗(yàn),使得學(xué)生掌握socket API編程。
二、實(shí)驗(yàn)內(nèi)容
該章節(jié)將會(huì)詳細(xì)的列出服務(wù)器和客戶端的功能要求。
2.1 服務(wù)器的功能
服務(wù)器能夠并行處理客戶端發(fā)送過(guò)來(lái)的消息或者命令
服務(wù)器把從新連接的客戶端中收到的第一條消息作為該客戶端的用戶名稱
服務(wù)器能夠處理從客戶端發(fā)送過(guò)來(lái)的兩種類型的信息:
廣播信息,服務(wù)器收到信息后將其廣播給其他客戶端
點(diǎn)對(duì)點(diǎn)信息,服務(wù)器將消息轉(zhuǎn)發(fā)給指定客戶端
服務(wù)器需要把某個(gè)客戶端發(fā)送的廣播聊天信息,廣播給和該客戶端在同一個(gè)頻道的所有客戶端(但是不包括該用戶端自己)這個(gè)廣播消息的格式應(yīng)為[<name>]:<message>。其中<name>為發(fā)送聊天信息的客戶端名稱,<message>為該客戶端發(fā)送的消息
當(dāng)某個(gè)客戶端離線時(shí),服務(wù)器需要廣播一個(gè)離線消息給所有的客戶端
容錯(cuò)處理。當(dāng)客戶端發(fā)送的數(shù)據(jù)和規(guī)定的格式不一致時(shí),服務(wù)器能夠處理這個(gè)錯(cuò)誤并且返回錯(cuò)誤信息
2.2 客戶端的功能
從服務(wù)器返回的消息需要顯示在控制臺(tái)下,并且需要去除末尾多余的空格
為了區(qū)別于其他人發(fā)送的消息,客戶端自己發(fā)送的消息,需要在控制臺(tái)中以“[me]:”顯示
三、操作環(huán)境
操作系統(tǒng):Mac OS
編寫語(yǔ)言:Java
編譯軟件:Eclipse

參考文檔和完整的文檔和源碼下載地址: