主頁 > 教育培訓(xùn) > 電腦培訓(xùn) > 如何學(xué)好網(wǎng)絡(luò)編程:VB網(wǎng)絡(luò)編程的基礎(chǔ)知識

如何學(xué)好網(wǎng)絡(luò)編程:VB網(wǎng)絡(luò)編程的基礎(chǔ)知識

  1. Winsock控件基礎(chǔ)

  Winsock控件在程序設(shè)計(jì)時(shí),看不到這個(gè)控件顯現(xiàn)在執(zhí)行的窗體之中,但是它可以提供有關(guān)網(wǎng)絡(luò)通訊方面的程序設(shè)計(jì)依據(jù)。此外,在這個(gè)控件的使用上,您可以非常容易地要求控件為您調(diào)用TCP或是UDP網(wǎng)絡(luò)服務(wù)的功能。因此,當(dāng)您在編寫有關(guān)住從式架構(gòu)的應(yīng)用程序時(shí),您可以不需要了解TCP通訊協(xié)議或是低級的Winsock api調(diào)用方式。

  通常,以筆者的經(jīng)驗(yàn),除了必須與標(biāo)準(zhǔn)通訊協(xié)議進(jìn)行互動(dòng)外,僅僅是進(jìn)行一般性相互通訊、交換數(shù)據(jù)時(shí),Winsock控件可以滿足您的要求。因此您可以非常容易地通過屬性的設(shè)置以及控制方法的調(diào)用,與遠(yuǎn)程的設(shè)備進(jìn)行連接并且相互交換信息。關(guān)于這些應(yīng)用方面以及調(diào)用方式,筆者將在接下的探索中,慢慢地研究Winsock的應(yīng)用方式。

  1-1TCP基礎(chǔ)

  不論是在Internet或是Internet網(wǎng)絡(luò)之中,以目前流行的趨勢,多半都會(huì)使用TCP協(xié)議來進(jìn)行遠(yuǎn)程設(shè)備的連接。TCP協(xié)議的全名為“傳輸控制協(xié)議(transfer control protocol)”,這是一種在Internet上使用的 主要協(xié)議,例如http,ftp,smtp等,都是屬于這個(gè)中面向連接的協(xié)議。因此,當(dāng)您 使用TCP協(xié)議連接兩個(gè)網(wǎng)絡(luò)上的設(shè)備時(shí),將可以在它們之間交換希望交換的數(shù)據(jù)。

  同時(shí),如果您開發(fā)的應(yīng)用程序?qū)儆谥鲝氖綉?yīng)用架構(gòu)(或是n-tear(多層次))應(yīng)用系統(tǒng)時(shí),將必須要知道應(yīng)用系統(tǒng)主機(jī)的ip地址(利用RemoteHost屬于取得)以及連接端口號(利用remoteport屬于取得)。在這些數(shù)據(jù)完全備齊之后,您才可以進(jìn)行進(jìn)一步的調(diào)用、連接。

  因此,如果正在建立主機(jī)端應(yīng)用程序時(shí),必須指定本機(jī),必須指定本機(jī)(執(zhí)行應(yīng)用程序所在的計(jì)算機(jī))所用的連接端口號(localport屬于),接著將Winsock控件設(shè)置為“監(jiān)聽(listen)”,即可等候遠(yuǎn)程客戶端進(jìn)行調(diào)用與連接。因此,當(dāng)主機(jī)端接收到客戶端調(diào)用并且要求連接的信息時(shí),將會(huì)觸發(fā)“要求連接()”的事件,接著進(jìn)行標(biāo)準(zhǔn)“允許”或是“拒絕”的程序。

  一旦主機(jī)端與客戶端連接完成之后,您將可以開始使用“傳送數(shù)據(jù)(senddata)”方法,將數(shù)據(jù)傳送給對方,并且利用“傳送完成(sendcomplete)”事件,來檢測數(shù)據(jù)是否傳送完畢。同時(shí),在數(shù)據(jù)傳達(dá)對方的計(jì)算機(jī)時(shí),將會(huì)觸發(fā)對方計(jì)算的“接收數(shù)據(jù)(dataarrival)”事件。此時(shí),您可以使用“取得數(shù)據(jù)(getdata)”方法,來去出這些接收到的數(shù)據(jù)。

  上述的程序?qū)⒅芏鴱?fù)始地發(fā)生,直到發(fā)生“中斷連接(closed)”事件或是不正常斷線為止。這種連接與數(shù)據(jù)傳輸?shù)姆绞?,則是屬于Winsock控件TCP協(xié)議的運(yùn)行特色。圖1-1所示為使用TCP連接的運(yùn)行模式。

如何學(xué)好網(wǎng)絡(luò)編程:VB網(wǎng)絡(luò)編程的基礎(chǔ)知識
如何學(xué)好網(wǎng)絡(luò)編程:VB網(wǎng)絡(luò)編程的基礎(chǔ)知識

  1-2 UDP基礎(chǔ)

  相對于TCP面向連接的協(xié)議則是屬于UDP非面向連接協(xié)議,UDP協(xié)議的全名是“用戶數(shù)據(jù)報(bào)協(xié)議(user datagram protocol)”,其運(yùn)行方式明顯與TCP協(xié)議有所不同。一般來說,使用UDP協(xié)議并沒有所謂的主機(jī)端或是客戶端的限制,您可以依據(jù)需求任意對調(diào)用主機(jī)端與客戶端的角色。

  因此,在數(shù)據(jù)傳輸之前,您必須要先設(shè)置好本機(jī)端所使用的連接端口(localport屬于所指定的)。因此,在本機(jī)上必須設(shè)置遠(yuǎn)方主機(jī)的ip地址(RemoteHost屬性所指定的)以及連接端口號(remoteport),并且使用這個(gè)屬性的內(nèi)容與遠(yuǎn)程設(shè)備進(jìn)行連接。相對的,遠(yuǎn)程主機(jī)的本機(jī)連接端口則為調(diào)用端的遠(yuǎn)程連接端口號,而遠(yuǎn)程主機(jī)的“遠(yuǎn)程主機(jī)ip地址(RemoteHost屬性)”則為調(diào)用端的本機(jī)ip地址。

  為了讓您可以對UDP協(xié)議有更清楚的了解,請參照下面的圖:

如何學(xué)好網(wǎng)絡(luò)編程:VB網(wǎng)絡(luò)編程的基礎(chǔ)知識
如何學(xué)好網(wǎng)絡(luò)編程:VB網(wǎng)絡(luò)編程的基礎(chǔ)知識

  在完成連接之后,即可通過連接到遠(yuǎn)程的連接端口,使用senddata方法,將數(shù)據(jù)傳送到遠(yuǎn)程的主機(jī)上。遠(yuǎn)程的主機(jī)一旦接收到數(shù)據(jù),將會(huì)立即觸發(fā)dataarrival事件,此時(shí)您可以使用getdata方法,來取得遠(yuǎn)程所傳送的數(shù)據(jù)。 上面闡述了有關(guān)TCP和UDP的一些連接原理,至于Winsock的屬性、方法、事件在此不做介紹有關(guān)資料都有詳細(xì)的說明。

免責(zé)聲明:該文觀點(diǎn)僅代表作者本人,查查吧平臺(tái)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)空間服務(wù),不承擔(dān)相關(guān)法律責(zé)任。圖片涉及侵權(quán)行為,請發(fā)送郵件至85868317@qq.com舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。返回查查吧首頁,查看更多>>
提示

該文觀點(diǎn)僅代表作者本人,查查吧平臺(tái)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)空間服務(wù),不承擔(dān)相關(guān)法律責(zé)任。圖片涉及侵權(quán)行為,請發(fā)送郵件至85868317@qq.com舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。

優(yōu)惠商城

更多