?? 程序說明.txt
字號(hào):
《 程序說明》
Ⅰ、設(shè)計(jì)項(xiàng)目:
簡(jiǎn)單的聊天程序
Ⅱ、設(shè)計(jì)人:
劉亞焱
Ⅲ、設(shè)計(jì)時(shí)間:
2003.5.6
Ⅳ、設(shè)計(jì)步驟:
1)需求分析:
用java實(shí)現(xiàn)底層網(wǎng)絡(luò)通信,我用的是 TCP/IP協(xié)議里的套接字(Socket)編程接口來實(shí)現(xiàn)網(wǎng)絡(luò)通訊。
2)設(shè)計(jì)部分:
socket是一種流式通信機(jī)制,是一種基于連接的通信,即,在通信之前通信雙方確認(rèn)身份并建立一條
專用的虛擬連接通道,然后他們通過這條通道傳送數(shù)據(jù)信息進(jìn)行通信,當(dāng)通信結(jié)束時(shí)再將原來所建的連
接拆除。
3)通信過程圖:
Server端 Client端
↓
創(chuàng)建對(duì)象ServerSocket使他在某端口 ↓
提供監(jiān)聽服務(wù)
↓
等待來自Client端
的服務(wù)請(qǐng)求 ↓
↓ 建立連接
接收Client端的請(qǐng)求用返回的 ←—————→ 創(chuàng)建Socket對(duì)象向的監(jiān)聽窗口請(qǐng)求
Socket建立連接
↓
通過向Socket中寫數(shù)據(jù)來與 數(shù)據(jù)通信 ↓
Client端通信 ←—————→ 通過向新的Socket中讀寫
數(shù)據(jù)來與Serve端通信
↓
關(guān)閉Socket結(jié)束與當(dāng)前Client 拆除連接 ↓
的通信等待其他請(qǐng)求 ←—————→ 關(guān)閉Socket,結(jié)束與
Serve端的通信
↓
關(guān)閉ServerSocket對(duì)象
結(jié)束監(jiān)聽服務(wù)
4)調(diào)試分析:
在調(diào)試時(shí)從開始的二十幾處錯(cuò)誤改到十幾處再到幾處,首先找到的是拼寫錯(cuò)誤,一處拼寫錯(cuò)誤導(dǎo)致了
一連串的錯(cuò)誤,而改對(duì)了一處后錯(cuò)誤也明顯的減少,其次是語法錯(cuò)誤,這些錯(cuò)誤一邊對(duì)照著書一邊自己
琢磨著, 錯(cuò)誤越改越少, 最后終于運(yùn)行成功,從屏幕上跳出了令我興奮的結(jié)果。
5)用戶使用說明:
用戶在使用此程序時(shí)無須再編譯,文件夾里已有編譯生成的字節(jié)碼文件(6個(gè)CLASS文件2個(gè)JAVA文件)
使用時(shí)只要在java2的標(biāo)準(zhǔn)編輯環(huán)境下先鍵入java Server使程序的服務(wù)器端開始監(jiān)聽“線路”里有沒有服
務(wù)請(qǐng)求,然后再鍵入java MyClient向服務(wù)器發(fā)出服務(wù)請(qǐng)求,建立連接并進(jìn)行數(shù)據(jù)通信。
注意:1、如果用戶想聯(lián)機(jī)使用,需要用戶改動(dòng)客戶端套接字里的內(nèi)容(把localhost改為服務(wù)器端的
IP地址再把客戶端程序再重新編譯)重新運(yùn)行一下就OK了。
2、如果用戶本地使用本系統(tǒng)則無須改動(dòng)源程序,直接運(yùn)行即可。
3、運(yùn)行順序不能顛倒,先運(yùn)行服務(wù)器端程序再運(yùn)行客戶端程序。
6)測(cè)試結(jié)果:
服務(wù)器端出現(xiàn)兩個(gè)窗口,一個(gè)是監(jiān)聽器窗口(此窗口顯示客戶端的IP地址),另一個(gè)是服務(wù)器端對(duì)
話窗口(顯示客戶端發(fā)送來的消息)。
客戶端出現(xiàn)帶按鈕的消息發(fā)送窗口,用戶就通過此對(duì)話窗口與服務(wù)器對(duì)話。
7)附錄或參考說明:
本程序的編寫成功,得到了高等教育出版社出版的《JAVA與面向?qū)ο虺绦蛟O(shè)計(jì)教程》大力幫助
并在JAVA中國站(http://www.java-cn.net)的論談里得到了一定的編程啟發(fā)。
在此向他們表示衷心的感謝!
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -