資源描述:
《畢業(yè)設(shè)計(jì)-udp簡(jiǎn)單聊天工具的設(shè)計(jì)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、目錄第一章需求分析31.1功能需求31.2應(yīng)用平臺(tái)需求31.3簡(jiǎn)單流程圖:3第二章概要設(shè)計(jì)42.1系統(tǒng)總體結(jié)構(gòu)圖42.2服務(wù)器流程42.3客戶端運(yùn)行流程5第三章詳細(xì)設(shè)計(jì)63.1總體流程圖63.2服務(wù)器模塊流程圖63.3客戶端模塊流程圖7第四章系統(tǒng)測(cè)試94.1服務(wù)器主界面94.2客戶端主界面94.3客戶端發(fā)送信息界面94.4服務(wù)器發(fā)送信息界面10第五章小結(jié)11第一章需求分析1.1功能需求(1)用戶能夠打開(kāi)聊天窗口(2)用戶能夠發(fā)言(3)聊天雙方能夠相互發(fā)送消息(4)用戶能夠退出聊天窗口1.2應(yīng)用平臺(tái)需求1.2.1操作系統(tǒng)環(huán)境該應(yīng)用程序由JAVA代碼編寫(xiě),所以具有JAVA應(yīng)用程序“
2、一處編寫(xiě),到處運(yùn)行”的強(qiáng)大優(yōu)勢(shì),換言之,該詞法分析系統(tǒng)可以適用于任意一種操作系統(tǒng)。1.2.2軟件環(huán)境該應(yīng)用程序需要在java的相關(guān)編程軟件上運(yùn)行,如Netbeans,Eclipse,JBuilder等1.3簡(jiǎn)單流程圖:用戶進(jìn)入聊天(發(fā)送、接受信息)結(jié)束第二章概要設(shè)計(jì)2.1系統(tǒng)總體結(jié)構(gòu)圖建立套接字Socket()服務(wù)器建立一個(gè)數(shù)據(jù)報(bào)Packet()等待請(qǐng)求報(bào)文獲得客戶端地址構(gòu)成信息包傳送客戶端建立套接字socket建立請(qǐng)求數(shù)據(jù)報(bào)發(fā)送請(qǐng)求創(chuàng)建接受包等待接受分配并填寫(xiě)數(shù)據(jù)緩沖區(qū)圖2.1系統(tǒng)總體結(jié)構(gòu)圖說(shuō)明:服務(wù)器首先創(chuàng)建套接字,再將套接字綁定到一個(gè)本地地址和端口上,等待接收數(shù)據(jù),獲得報(bào)
3、文后,從報(bào)文獲取客戶端IP地址,構(gòu)成信息包發(fā)送,發(fā)送結(jié)束后,關(guān)閉套接字;客戶端首先創(chuàng)建套接字,向服務(wù)器端發(fā)送數(shù)據(jù),數(shù)據(jù)發(fā)送成功后,關(guān)閉套接字。2.2服務(wù)器流程創(chuàng)建Socket分配數(shù)據(jù)緩沖區(qū)創(chuàng)建DatagramPacket等待連接收到數(shù)據(jù)包獲得IP及端口號(hào)建立數(shù)據(jù)包發(fā)送信息關(guān)閉Socket圖2.2服務(wù)器運(yùn)行過(guò)程圖2.3客戶端運(yùn)行流程創(chuàng)建Socket向服務(wù)器發(fā)送請(qǐng)求等待應(yīng)答處理接受的數(shù)據(jù)創(chuàng)建DatagramPacket發(fā)送數(shù)據(jù)結(jié)束圖2.3客戶端運(yùn)行過(guò)程圖第三章詳細(xì)設(shè)計(jì)3.1總體流程圖開(kāi)始服務(wù)器客戶端結(jié)束圖3.1總體流程圖界面3.2服務(wù)器模塊流程圖開(kāi)始服務(wù)器定義兩個(gè)套接字,分別用于接
4、收消息和發(fā)送消息定義數(shù)據(jù)接收包定義數(shù)據(jù)接收包發(fā)送消息結(jié)束圖3.2服務(wù)器端流程圖界面說(shuō)明:(1)本模塊中需要用到網(wǎng)絡(luò)編程中很重要的DatagramSocket類(lèi),該類(lèi)可以定義套接字對(duì)象用于發(fā)送和接受信息;(2)數(shù)據(jù)打包時(shí)則又用到另一個(gè)很重要的類(lèi):DatagramPackage類(lèi),通過(guò)該類(lèi)定義的對(duì)象可以對(duì)數(shù)據(jù)進(jìn)行打包,從而實(shí)現(xiàn)消息的轉(zhuǎn)發(fā);(3)從接收的消息包中獲取IP地址的過(guò)程中涉及到InetAddress類(lèi),通過(guò)該類(lèi)的getByName()方法可以獲得消息發(fā)送方的IP地址3.3客戶端模塊流程圖開(kāi)始客戶端定義兩個(gè)套接字,分別用于接收消息和發(fā)送消息定義數(shù)據(jù)發(fā)送包定義數(shù)據(jù)發(fā)送包輸入服務(wù)
5、器IP發(fā)送信息結(jié)束圖3.3客戶端流程圖界面說(shuō)明:(1)本模塊中需要用到網(wǎng)絡(luò)編程中很重要的DatagramSocket類(lèi),該類(lèi)可以定義套接字對(duì)象用于發(fā)送和接受信息;(2)數(shù)據(jù)打包時(shí)則又用到另一個(gè)很重要的類(lèi):DatagramPackage類(lèi),通過(guò)該類(lèi)定義的對(duì)象可以對(duì)數(shù)據(jù)進(jìn)行打包,從而實(shí)現(xiàn)消息的轉(zhuǎn)發(fā);(3)從接收的消息包中獲取IP地址的過(guò)程中涉及到InetAddress類(lèi),通過(guò)該類(lèi)的getByName()方法可以獲得消息發(fā)送方的IP地址第四章系統(tǒng)測(cè)試4.1服務(wù)器主界面服務(wù)器端運(yùn)行后,彈出界面,如圖4.1所示圖4.1UDP服務(wù)器界面4.2客戶端主界面客戶端運(yùn)行后,彈出界面,如圖4.2所
6、示圖4.2客戶端主界面4.3客戶端發(fā)送信息界面客戶端輸入服務(wù)器IP地址、發(fā)送內(nèi)容,點(diǎn)擊發(fā)送按鈕,即可發(fā)送消息。此時(shí),服務(wù)器可接受到客戶端發(fā)送的消息,雙方聊天窗口中均可顯示客戶端發(fā)送的消息。如圖4.3所示圖4.3客戶端發(fā)送信息圖4.4服務(wù)器發(fā)送信息界面服務(wù)器收到消息后,對(duì)客戶端作出回應(yīng),輸出消息,點(diǎn)擊發(fā)送按鈕,信息即可發(fā)送到客戶端,此時(shí),客戶端與服務(wù)器聊天窗口中都將顯示服務(wù)器發(fā)送的信息。如圖4.4所示。圖4.4服務(wù)器發(fā)送信息圖第五章小結(jié)程序不足之處:(1)窗口關(guān)閉的安全性沒(méi)能實(shí)現(xiàn),只是強(qiáng)制性的終止了整個(gè)應(yīng)用程序;(2)發(fā)送的信息長(zhǎng)度受到局限性,在很大程度上不能滿足用戶的需求;課程
7、設(shè)計(jì)的心得體會(huì):首先我們由衷感謝老師提供給我們這樣一個(gè)鍛煉自己的機(jī)會(huì),讓我們感受到學(xué)來(lái)的知識(shí)不只是用來(lái)完成試卷上試題。其次我們?cè)谕瓿烧n程設(shè)計(jì)的過(guò)程中體會(huì)到團(tuán)隊(duì)合作的樂(lè)趣。我們學(xué)會(huì)了積極的同團(tuán)隊(duì)成員交流,取長(zhǎng)補(bǔ)短,共同進(jìn)步。最后,在完成任務(wù)的過(guò)程中,我們加深了對(duì)課本知識(shí)的理解,增強(qiáng)了我們的網(wǎng)絡(luò)編程能力,同時(shí)也為我們以后的畢業(yè)設(shè)計(jì)打下了又一堅(jiān)實(shí)基礎(chǔ)。