一嘁字、實驗目的
本次實驗需要完成一個實時聊天系統(tǒng)夫椭。該系統(tǒng)由聊天客戶端和聊天服務器組成掸掸。客戶端即可以給指定客戶端發(fā)送信息蹭秋,也可以把消息廣播給所有客戶端扰付。通過這個實驗,使得學生掌握socket API編程仁讨。
二羽莺、實驗內(nèi)容
該章節(jié)將會詳細的列出服務器和客戶端的功能要求。
2.1 服務器的功能
服務器能夠并行處理客戶端發(fā)送過來的消息或者命令
服務器把從新連接的客戶端中收到的第一條消息作為該客戶端的用戶名稱
服務器能夠處理從客戶端發(fā)送過來的兩種類型的信息:
廣播信息陪竿,服務器收到信息后將其廣播給其他客戶端
點對點信息禽翼,服務器將消息轉(zhuǎn)發(fā)給指定客戶端
服務器需要把某個客戶端發(fā)送的廣播聊天信息,廣播給和該客戶端在同一個頻道的所有客戶端(但是不包括該用戶端自己)這個廣播消息的格式應為[<name>]:<message>族跛。其中<name>為發(fā)送聊天信息的客戶端名稱闰挡,<message>為該客戶端發(fā)送的消息
當某個客戶端離線時,服務器需要廣播一個離線消息給所有的客戶端
容錯處理礁哄。當客戶端發(fā)送的數(shù)據(jù)和規(guī)定的格式不一致時长酗,服務器能夠處理這個錯誤并且返回錯誤信息
2.2 客戶端的功能
從服務器返回的消息需要顯示在控制臺下,并且需要去除末尾多余的空格
為了區(qū)別于其他人發(fā)送的消息桐绒,客戶端自己發(fā)送的消息夺脾,需要在控制臺中以“[me]:”顯示
三之拨、操作環(huán)境
操作系統(tǒng):Mac OS
編寫語言:Java
編譯軟件:Eclipse
參考文檔和完整的文檔和源碼下載地址: