国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
VB.NET中Winsock控件的使用詳解(一)_

VB.NET中Winsock控件的使用詳解(一)

作者:不詳 出處:IT專(zhuān)家網(wǎng)  2009/8/7 11:39:28 閱讀 646  次

  如同上面的內(nèi)容所描述的,不論您使用UDP協(xié)議或是TCP協(xié)議,Winsock控件都可以允許與遠(yuǎn)程的設(shè)備連接,并且在相互之間交換數(shù)據(jù)。因此,依據(jù)上面的面熟而言,不論您使用的是哪一種協(xié)議都可以扮演主機(jī)端和客戶(hù)端的角色。

  同時(shí),當(dāng)您在使用Winsock控件的過(guò)程中,這個(gè)控件不會(huì)顯示在正在執(zhí)行的窗體之中。換句話說(shuō),Winsock控件是在后臺(tái)運(yùn)行的一種控件。在執(zhí)行過(guò)程之中,不會(huì)具有任何選用、可見(jiàn)的控件。那么該如何使用Winsock控件呢?它可以被應(yīng)用在那些類(lèi)型的應(yīng)用程序之中呢?以下所列出的內(nèi)容,是這個(gè)控件可以應(yīng)用的大致范圍:

  1)、將客戶(hù)端所收集的數(shù)據(jù),傳送給主機(jī)端。

  2)、點(diǎn)對(duì)點(diǎn)的文件傳送。

  3)、聊天室應(yīng)用程序。

  4)、電子公告欄。

  5)、voip(voice over TCP/ip)

  因此,當(dāng)您希望建立上述類(lèi)型的應(yīng)用程序之前,必須要學(xué)習(xí)如何選用適合的協(xié)議類(lèi)型。

  一、如何選用適用的協(xié)議

  當(dāng)您準(zhǔn)備開(kāi)始使用Winsock控件之前,首要的工作是如何選擇適用的協(xié)議類(lèi)型。如同先前所述的,您可以選擇TCP 協(xié)議或是UDP協(xié)議中的一種。但是這兩種協(xié)議的差異點(diǎn)在哪里呢?雖然,它們同樣可以使用在Internet或是Internet環(huán)境之中,但是主要的差異在于連接的狀態(tài)。以下是這兩種協(xié)議的特點(diǎn)說(shuō)明:

  1)、TCP協(xié)議是屬于面向連接的協(xié)議。所謂的面向連接協(xié)議是指——“在您可以交換數(shù)據(jù)之前,在兩個(gè)終端設(shè)備之間必須連接成功”。同時(shí),在網(wǎng)絡(luò)的基礎(chǔ)理論之中,都會(huì)特別強(qiáng)調(diào)TCP具有錯(cuò)誤核對(duì)的功能。也就是說(shuō),在數(shù)據(jù)的傳送過(guò)程中,如果發(fā)生錯(cuò)誤或是數(shù)據(jù)無(wú)法傳達(dá)對(duì)方時(shí),TCP協(xié)議將會(huì)重復(fù)嘗試著重新傳送數(shù)據(jù)。因此,核對(duì)以及重新傳送的能力,因此起傳輸效率會(huì)比Internet協(xié)議或是巨域網(wǎng)絡(luò)協(xié)議差一些(netBIEUI、IPX、AppleTalk)。

  2)、UDP協(xié)議是屬于無(wú)面向連接協(xié)議。這種協(xié)議為適用在兩個(gè)設(shè)備之間,適用于信息傳送以及數(shù)據(jù)的傳輸方面。但是在使用時(shí),必須注意當(dāng)你將信息送出時(shí),對(duì)方可能已經(jīng)離線,因而無(wú)法接收到數(shù)據(jù),而您也無(wú)法實(shí)時(shí)察覺(jué)到對(duì)方已經(jīng)離線。此外,使用UDP協(xié)議的最大數(shù)據(jù)傳送量,完全取決于網(wǎng)絡(luò)的傳輸量。因此,此種協(xié)議較為適用于局域網(wǎng)絡(luò)。

  因此,當(dāng)您在建立應(yīng)用程序并且選用適當(dāng)?shù)膮f(xié)議之前,務(wù)必先依據(jù)應(yīng)用程序使用的環(huán)境來(lái)選擇適用的協(xié)議。

  二、設(shè)置協(xié)議

  當(dāng)已經(jīng)選擇好適當(dāng)?shù)膮f(xié)議之后,接下來(lái),將必須要設(shè)置協(xié)議的類(lèi)型。在Visable Basic之中,共有兩種設(shè)置協(xié)議的方式:“修改屬性窗口”以及“程序代碼設(shè)置”。以下是這兩種設(shè)置方式的說(shuō)明。

  1)、修改屬性窗口(見(jiàn)下圖)

  

  2)、程序代碼設(shè)置

  Winsock1.Protocol=sckTCPProtocol

  三、TCP連接的基礎(chǔ)

  在使用TCP協(xié)議來(lái)建立應(yīng)用程序的過(guò)程中,首先必須決定應(yīng)用程序是屬于主機(jī)端

  是客戶(hù)端來(lái)決定應(yīng)用程序所扮演的角色問(wèn)題。因此,在建立應(yīng)用程序的過(guò)程中,如果您選擇“主機(jī)端”時(shí),主機(jī)端的Winsock控件必須將特定的連接端口號(hào)設(shè)置在監(jiān)聽(tīng)模式之中。同時(shí),在客戶(hù)端提出連接的請(qǐng)求時(shí),主機(jī)端可以允許客戶(hù)端的連接請(qǐng)求,并且完成連接的程序。

  因此,一旦主機(jī)端與客戶(hù)端連接成功之后,在這個(gè)部設(shè)備之間即可開(kāi)始傳送數(shù)據(jù),以下的程序代碼,具有TCP連接的基本聊天室功能。

  1、TCP連接范例

  在此筆者只做簡(jiǎn)單的-程序介紹,

  frmserver窗體的設(shè)計(jì)內(nèi)容

  如下圖所示

  

  frmserver的程序代碼

       private sub form_load()
  ‘設(shè)置本機(jī)連接端口的localport屬性的內(nèi)容
  ‘請(qǐng)注意!必須是整體值
  tcpserver.LocalPort=2000
  ‘將本機(jī)連接端口設(shè)置為監(jiān)聽(tīng)模式
  tcpserver.Listen
  Me.Caption=”frmsever”
  Label1.Caption=”傳送的文字“
  Label2.Caption=”接收的文字“
  ‘打開(kāi)frmclient窗體
  frmClient.Show
  end sub
  private sub tcpserver_connectionrequest(byval requestid as long)
  ‘如果tcpserver 控件的狀態(tài)目前不是處于關(guān)
  ‘閉的狀態(tài)時(shí),在允許遠(yuǎn)程設(shè)備連接時(shí),必須要關(guān)閉目前的控制的運(yùn)行
  if tcpserver.state<>sckclosed then tcpserver..close
  ‘允許遠(yuǎn)程設(shè)備使用必要的識(shí)別碼(requestid)與主機(jī)進(jìn)行連接
  tcpserver.accept requestid
  end sub
  private sub txtsend_change()
  ‘當(dāng)txtsend控件的內(nèi)容發(fā)生變化時(shí),將txtsend控件的內(nèi)容,通過(guò)tcpserver控件senddata方
  ‘法,將txtsend控件的內(nèi)容傳送給frmclient
  tcpserver.senddata txtsend.text
  end sub
  private sub tcpserver_dataarrival(byval bytestotal as long)
  ‘聲明即將接收的數(shù)據(jù)類(lèi)型
  dim strdata as string
  ‘調(diào)用tcpserver控件的getdata方法,將接收的數(shù)據(jù)以vbstring數(shù)據(jù)類(lèi)型,存放在strdata變量之中。
  Tcpserver.getdata strdata ,vbstring
  ‘將strdata變量的內(nèi)容,存放在txtoutput控件之中。
  Txtreceive.text =strdata
  End sud

  frmclient窗體的設(shè)計(jì)內(nèi)容

  窗體的配置內(nèi)容如圖3-2

  


     程序的代碼

 private sub form_load()
  ‘指定遠(yuǎn)程主機(jī)的ip地址。如果是localhost,代表的ip地址為127.0.0.1,并且也代表本機(jī)。
  Tcpclient.RemoteHost=”localhost”
  ‘設(shè)置本機(jī)連接端口的localport屬性的內(nèi)容
  ‘請(qǐng)注意!必須是整體值
  tcpclient.remoteport=2000
  ‘設(shè)置窗體的標(biāo)題內(nèi)容
  Me.Caption=”frmclient”
  Label1.caption=”傳送的文字”
  Label2.caption=”接收的文字”
  Cmdconnect.caption=”與主機(jī)連接”
  End sub
  Private sub cmdconnect_click()
  ‘調(diào)用tcpclient控件的connect方法,來(lái)初始化與主機(jī)的連接請(qǐng)求
  tcpclient.connect
  end sub
  private sub txtsend_change()
  ‘當(dāng)txtsend控件的內(nèi)容發(fā)生變化時(shí),立即調(diào)用tcpclient控件的senddata方法,將txtsend控件的內(nèi)容傳送給主機(jī)
  tcpclient.senddata txtsend.text
  end sub
  private sub tcpclient_dataarrival(byval bytestotal as long)
  ‘說(shuō)明即將接收的數(shù)據(jù)類(lèi)型
  dim strdata as string
  ‘調(diào)用tcpclient控件的getdata方法,將接收的數(shù)據(jù)以vbstring數(shù)據(jù)類(lèi)型存放strdata變量之中。
  Tcpclient.getdata strdata,vbstring
  ‘將strdata變量的內(nèi)容,存放在txtoutput控件之中。
  Txtreceive.text=strdata
  End sub

  程序的執(zhí)行結(jié)果

  

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
VB Winsock 控件TCP與UDP連接實(shí)例
利用Winsock控件實(shí)現(xiàn)FTP編程
用VB實(shí)現(xiàn)客戶(hù)——服務(wù)器(TCP/IP)編程實(shí)例 — 編程愛(ài)好者 programfan.c...
VB Socket編程 框架
Winsock控件基礎(chǔ)(VB6.0)
用Winsock控件實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)通信
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服