0引言對(duì)于一個(gè)程序員,如果要從頭開(kāi)始完全由自己來(lái)編寫(xiě)一個(gè)用于通信的應(yīng)用程序,必須對(duì)相關(guān)的網(wǎng)絡(luò)協(xié)議及其它的一些底層技術(shù)有較深入的了解,編程難度比較大。Visual Basic(VB)為廣大程序員提供了基于WindowsSockets網(wǎng)絡(luò)編程接口的Winsock控件,它封裝了所有繁瑣的技術(shù)細(xì)節(jié),并提供了訪問(wèn)TCP和udp網(wǎng)絡(luò)服務(wù)的方便途徑,只需通過(guò)設(shè)置控件的屬性并調(diào)用其方法就可輕易連接到一臺(tái)遠(yuǎn)程計(jì)算機(jī)中,并且還可以實(shí)現(xiàn)雙向交換數(shù)據(jù)。因此,利用VB的Winsock 控件來(lái)編寫(xiě)基于TCP和udp協(xié)議的通信程序,可以降低編程難度,簡(jiǎn)化應(yīng)用程序。1TCP和udp協(xié)議介紹TCP和udp是TCP/IP協(xié)議中的兩個(gè)傳輸層協(xié)議,它們使用IP路由功能把數(shù)據(jù)包發(fā)送到目的地,從而為應(yīng)用程序及應(yīng)用層協(xié)議提供網(wǎng)絡(luò)服務(wù)。TCP(Transmission Control Protocol,傳輸控制協(xié)議)是面向連接的協(xié)議。“面向連接”就是在正式通信前必須要與對(duì)方建立起可靠的連接,這就好象平時(shí)的打電話(huà),必須等線路接通了、對(duì)方拿起話(huà)筒才能相互通話(huà)。一個(gè)TCP連接必須要經(jīng)過(guò)三次“對(duì)話(huà)“才能建立起來(lái),其中的過(guò)程非常復(fù)雜。udp(User Data Protocol,用戶(hù)數(shù)據(jù)報(bào)協(xié)議)是與TCP相對(duì)應(yīng)的協(xié)議,是面向非連接的協(xié)議。“面向非連接”就是在正式通信前不必與對(duì)方先建立連接,不考慮對(duì)方狀態(tài)就直接發(fā)送數(shù)據(jù),這就好象平時(shí)的發(fā)手機(jī)短信,不必考慮對(duì)方狀態(tài),只需要輸入對(duì)方手機(jī)號(hào)就行。TCP提供的是面向連接的、可靠的數(shù)據(jù)流傳輸,而udp提供的是面向非連接的、不可靠的數(shù)據(jù)流傳輸。面向連接的協(xié)議在任何數(shù)據(jù)傳輸前就建立好了點(diǎn)到點(diǎn)的連接,面向非連接的協(xié)議在數(shù)據(jù)傳輸之前不建立連接,而是在每個(gè)中間節(jié)點(diǎn)對(duì)面向非連接的包和數(shù)據(jù)包進(jìn)行路由。