資源描述:
《用vb編寫基于tcp協(xié)議聊天程序》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。
1、基于TCP協(xié)議的點(diǎn)對(duì)點(diǎn)聊天程序計(jì)算機(jī)網(wǎng)絡(luò)原理實(shí)驗(yàn)報(bào)告基于TCP協(xié)議的點(diǎn)對(duì)點(diǎn)聊天程序作者:班級(jí):學(xué)號(hào):導(dǎo)師:18基于TCP協(xié)議的點(diǎn)對(duì)點(diǎn)聊天程序目錄1、設(shè)計(jì)目標(biāo)…………………………………………………………………………32、VisualBasicWinsock控件簡(jiǎn)單介紹…………………………………………………33、VisualBasicWinsock控件的導(dǎo)入……………………………………………………34、程序設(shè)計(jì)的主要步驟………………………………………………………………….....54.1網(wǎng)絡(luò)通信協(xié)議的基礎(chǔ)和選擇……………………………………………………………54.2客戶端與服務(wù)器的實(shí)現(xiàn)過(guò)
2、程……………………………………………….……………64.3程序的編寫……………………………………………………………………………….84.4可執(zhí)行文件的生成…………………………………………………………….……….145、測(cè)試………………………………………………………………………………………..156、總結(jié)………………………………………………………………………………………….186.1關(guān)鍵問(wèn)題………………………………………………………………………………….186.2本程序的不足…………………………………………………………………………….186.3心得體會(huì)…………………………………………
3、……………………………………….1818基于TCP協(xié)議的點(diǎn)對(duì)點(diǎn)聊天程序1、設(shè)計(jì)目標(biāo)本實(shí)驗(yàn)的目標(biāo)是用VisualBasic語(yǔ)言設(shè)計(jì)一個(gè)基于TCP/IP協(xié)議的點(diǎn)對(duì)點(diǎn)的聊天程序。利用VisualBasicWinsock控件實(shí)現(xiàn)。程序?qū)懲旰笞罱K生成服務(wù)器和客戶端兩個(gè)可執(zhí)行文件,打開服務(wù)器可執(zhí)行文件,即運(yùn)行服務(wù)器,然后客戶端可以不局域網(wǎng)上不同的主機(jī)上運(yùn)行,輸入服務(wù)器主機(jī)的IP,連接到服務(wù)器,客戶端與客戶端之間即可實(shí)現(xiàn)簡(jiǎn)易的聊天功能,在服務(wù)器可以顯示在線人數(shù)以及客戶端的IP地址。2、VisualBasicWinsock控件簡(jiǎn)單介紹本實(shí)驗(yàn)用到VisualBasic中一個(gè)比較新的控件,就是Wins
4、ock控件。它主要用于將Winsock接口簡(jiǎn)化成易于使用的VisualBasic內(nèi)部接口。在這種控件問(wèn)世之前,要想通過(guò)VisualBasic進(jìn)行網(wǎng)絡(luò)程序設(shè)計(jì),唯一的辦法便是將所有Winsock函數(shù)都從DLL中導(dǎo)入(Import),然后重新定義必要的結(jié)構(gòu)。但是這樣的話,結(jié)構(gòu)的數(shù)量就是很多,工作量也太大,且極易出錯(cuò)。Winsock控件問(wèn)世之前,用VisualBasic進(jìn)行網(wǎng)絡(luò)編程就變得非常方便了。Winsock控件對(duì)用戶來(lái)說(shuō)是不可見的,它提供了訪問(wèn)TCP和UDP網(wǎng)絡(luò)服務(wù)的方便途徑。為編寫客戶或服務(wù)器應(yīng)用程序,不必了解TCP的細(xì)節(jié)或調(diào)用低級(jí)的WinsockAPIs。通過(guò)設(shè)置控件的屬性并調(diào)
5、用其方法就可輕易連接到一臺(tái)遠(yuǎn)程機(jī)器上去,并且還可雙向交換數(shù)據(jù)。3、VisualBasicWinsock控件的導(dǎo)入在打開VisualBasic軟件時(shí),在工具箱中并沒有Winsock控件,要使用它,首先要將這個(gè)控件引用進(jìn)來(lái),如下圖操件:(注意可能在部件中沒有該控件,解決辦法請(qǐng)閱讀“使用必讀.txt”)點(diǎn)擊“工程”—部件,18基于TCP協(xié)議的點(diǎn)對(duì)點(diǎn)聊天程序彈出對(duì)話框,選擇MicrosoftWinsockControl6.0。(注意可能在部件中沒有該控件供選擇,解決辦法請(qǐng)閱讀“使用必讀.txt”)18基于TCP協(xié)議的點(diǎn)對(duì)點(diǎn)聊天程序選擇完成后這時(shí)在VisualBasic的編輯畫面左這的工具箱
6、中會(huì)多一個(gè)控件,這就是Winsock控件,現(xiàn)在就可以開始使用它進(jìn)行設(shè)計(jì)編程。4、程序設(shè)計(jì)的主要步驟4.1網(wǎng)絡(luò)通信協(xié)議的基礎(chǔ)和選擇 a、TCP(數(shù)據(jù)傳輸協(xié)議)基礎(chǔ) 數(shù)據(jù)傳輸協(xié)議允許創(chuàng)建和維護(hù)與遠(yuǎn)程計(jì)算機(jī)的連接。連接兩臺(tái)計(jì)算機(jī)就可彼此進(jìn)行數(shù)據(jù)傳輸?! ∪绻麆?chuàng)建客戶應(yīng)用程序,就必須知道服務(wù)器計(jì)算機(jī)名或者IP地址(RemoteHost屬性),還要知道進(jìn)行“偵聽”的端口(RemotePort屬性),然后調(diào)用Connect方法?! ∪绻麆?chuàng)建服務(wù)器應(yīng)用程序,就應(yīng)設(shè)置一個(gè)收聽端口(LocalPort屬性)并調(diào)用Listen方法。當(dāng)客戶計(jì)算機(jī)需要連接時(shí)就會(huì)發(fā)生ConnectionRequest事件
7、。為了完成連接,可調(diào)用ConnectionRequest事件內(nèi)的Accept方法?! 〗⑦B接后,任何一方計(jì)算機(jī)都可以收發(fā)數(shù)據(jù)。為了發(fā)送數(shù)據(jù),可調(diào)用SendData方法。當(dāng)接收數(shù)據(jù)時(shí)會(huì)發(fā)生DataArrival事件。調(diào)用DataArrival事件內(nèi)的GetData方法就可獲取數(shù)據(jù)。 b、18基于TCP協(xié)議的點(diǎn)對(duì)點(diǎn)聊天程序UDP(用戶數(shù)據(jù)文報(bào)協(xié)議)基礎(chǔ) 用戶數(shù)據(jù)文報(bào)協(xié)議(UDP)是一個(gè)無(wú)連接協(xié)議。跟TCP的操作不同,計(jì)算機(jī)并不建立連接。另外UDP應(yīng)用程序可以是客戶機(jī)