資源描述:
《課程設(shè)計(jì)報(bào)告-基于udp協(xié)議的網(wǎng)絡(luò)聊天程序設(shè)計(jì)與實(shí)現(xiàn)(整理版)》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、處您后an匕工常覲BeijingInstituteofPetrochemicalTechnology《計(jì)算機(jī)網(wǎng)絡(luò)編程》綜合程序設(shè)計(jì)項(xiàng)目基于UDP協(xié)議的網(wǎng)絡(luò)聊天程序設(shè)計(jì)院(系、部):信息工程學(xué)院姓名:班級:指彌磁名:2011年4月16日?北京1需求分析21.1課程設(shè)計(jì)目的21.2課程設(shè)計(jì)內(nèi)容21.3課程設(shè)計(jì)要求22概要設(shè)計(jì)22.1原理概述22?2功能模塊調(diào)用流程設(shè)計(jì)33詳細(xì)設(shè)計(jì)43.1流程圖43.2運(yùn)行效果圖53.3主要源代碼124項(xiàng)目分析與總結(jié)174.1遇到的問題和解決方法174.2心得體會181、需求分析1.1課程設(shè)計(jì)目的開發(fā)一個(gè)專用于實(shí)現(xiàn)兩臺計(jì)算機(jī)Z間即時(shí)通訊的軟
2、件,以方便兩臺計(jì)算機(jī)Z間信息的交流。,在連接并通信時(shí),尤其是近程的即時(shí)通訊,徹底的脫離了遠(yuǎn)程的服務(wù)器,避免了和遠(yuǎn)程服務(wù)器連接時(shí)過多的浪費(fèi)網(wǎng)絡(luò)資源。并且避免了服務(wù)器忙或與服務(wù)器無法連接時(shí),浪費(fèi)過多吋間用于和服務(wù)器建立連接!因此,這個(gè)軟件是極具適應(yīng)性和實(shí)用性的即吋通訊軟件!木次課程設(shè)計(jì)的n的是學(xué)習(xí)基于udp協(xié)議實(shí)現(xiàn)網(wǎng)絡(luò)聊天程序,已達(dá)到學(xué)會面向無連接方式的程設(shè)計(jì)方法,并理解網(wǎng)絡(luò)編程中面向無連接的概念。1.2課程設(shè)計(jì)的內(nèi)容用戶數(shù)據(jù)報(bào)(UDP)是一個(gè)無連接協(xié)議,使用這種協(xié)議時(shí),并不需要在兩臺計(jì)算機(jī)之間建立固定的連接,也就是說,通信雙方?jīng)]有服務(wù)器和客戶機(jī)Z分,它們Z間進(jìn)行的是對等
3、通信,所以它的優(yōu)勢很明顯,是現(xiàn)代通信不可或缺的一部分。所以,利用它的優(yōu)勢設(shè)計(jì)一個(gè)可以實(shí)現(xiàn)私聊和群聊的軟件,實(shí)現(xiàn)兩臺計(jì)算機(jī)間的即時(shí)通訊。1.3課程設(shè)計(jì)耍求基于UDP協(xié)議實(shí)現(xiàn)一對一的聊天和一對多的聊天,提供友好的用戶界面,便于用戶進(jìn)行操作。根據(jù)目前使川聊犬程序的川戶需求顯示,川戶對于聊犬程序主要有以卜?兒點(diǎn)要求:(1)聊天功能:可以實(shí)現(xiàn)實(shí)時(shí)接收和發(fā)送文字信息,并能支持公聊和私聊的方式。(2)用戶功能:可以查看對方的開放信息,以及發(fā)送方的IP。2概要設(shè)計(jì)2.1原理概述采用UDP協(xié)議,通過服務(wù)器中轉(zhuǎn)方式。因此,現(xiàn)在的IP偵探在你僅僅跟對方發(fā)送聊天消息的時(shí)候是無法獲取到IP的。
4、UDP協(xié)議是不可靠協(xié)議,它只管發(fā)送,不管對方是否收到。但它的傳輸很高效,因?yàn)閁DP協(xié)議排除了信息可靠傳遞機(jī)制,將安全和排序等功能移交給上層應(yīng)用來完成,極大降低了執(zhí)行時(shí)間,使速度得到了保證。例如,騰訊采用了上層協(xié)議來保證可靠傳輸:如果客戶端使用UDP協(xié)議發(fā)出消息示,服務(wù)器收到該包,需要使用UDP協(xié)議發(fā)冋一個(gè)應(yīng)答包。如此來保證消息可以無遺漏傳輸。2?2功能模塊調(diào)用流程設(shè)計(jì):Socket^Bind()Socket^)*Bind()雙向通信ReceiveFrom()/SendToO—ShutdownOReceiveProm()/SendToO歸Shutdown。Close()
5、3.2界面設(shè)計(jì)與運(yùn)行效果圖://界面設(shè)計(jì)//測試程序:初始化界面,組播地址為224.100.0.1,端口號為65530//測試程序:點(diǎn)擊開始聊天,組播地址為224.100.0.1,端口號為6553,開始群聊。//測試程序:界面顯示群聊接收發(fā)消息。//測試程序:選擇在線的私聊對象。//測試程序:輸入對方IP地址,進(jìn)行固定的私聊。chat口回岡參數(shù)對方工P210.31?40.246氓口號6553組播地址224.100.0.1
6、一S賄聊
7、斷開
8、接收發(fā)消息a來自210.31.40.246:2117:吃了嗎您呢*???來自210.31.40.180:3783:吃了來自210.3
9、1.40.246:2118:吃什么了來自210.31.40.191:1818:我也吃了豊?輻入信息私聊對象210.31.40.180210.31.40.113//測試程序:不正確的情況——端口號為空時(shí)。//測試程序:不正確的情況——超出端口號范圍時(shí)。//測試程序:不正確的情況——端口號不合法時(shí)。//測試程序:以上情況均不能正確發(fā)送信息。//測試程序:不正確的情況——組播地址非法時(shí)。〃測試程序:不正確的情況——發(fā)送的輸入信息為空。〃測試程序:點(diǎn)擊清屏按鈕接收發(fā)消息框清空?!娔X桌面程序欄中托盤圖標(biāo)2.3主耍源代碼:namespacechat{publicpartialc
10、lasschat:Form{privatestaticIPAddressm_GroupAddress;privateboolisExit=false;privateboolisShow=true;privateboolm_bFlag;NotifylconmyNotifylcon;//委托類doIcgatedelegatevoidAppendStringCallback(stringtext);AppendStringCal1backappendStringCallback;privatestaticUdpClientudpClient;private