国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網管 > 局域網 > 正文

利用Winsock控件實現局域網通信(一)

2024-09-12 21:52:41
字體:
來源:轉載
供稿:網友

Winsock控件可以供Microsoft Acess、Visual Basic,Visual C++或Visual Foxpro的開發人員使用。本文以Visual Basic 6企業版為開發環境來向大家介紹一下Winsock控件的初步應用。

  Winsock控件可以使用兩種協議:TCP協議和UDP協議,下面來分別介紹。

  TCP協議即數據傳輸協議,它允許創建和維護與遠程計算機的連接,使其彼此可以進行數據傳輸。利用TCP協議通訊必須分別建立客戶應用程序和服務器應用程序。

  在創建客戶應用程序時,必須知道服務器計算機名或其IP地址(存于RemoteHost屬性)、及服務器計算機進行偵聽的端口(存于RemotePort屬性),然后調用Connect方法。

  創建服務器應用程序時,就應相應設置一個偵聽端口(LocalPort屬性)并調用listen方法。當客戶機需要連接時(connect),就會發生ConnectionRequest事件。為了完成連接,你可以在ConnectionRequest事件中調用Accept方法。建立連接后,任何一方計算機都可以發送、接收對方數據。如果你要發送數據,需調用SendData方法。當接收到數據時,會發生DataArrival事件,調用DataArrival事件中的GetData方法就可以獲得對方傳送的數據。

  如果只有兩臺計算機,那十分容易。假設甲機為客戶機,乙機為服務器,且其IP為192.192.192.1,接收端口為1200(任意選一個未被使用的端口即可)。首先在甲機客戶端程序中加入一個Winsock控件,起名為sckconnect,并設置其屬性:RemoteHost=“192.192.192.1”,(即甲機IP地址),RemotePort=1200(即甲機偵聽端口);再在乙機服務器程序中假如一個名為sckserver(0)的Winsock控件,其LocalPort=1200,
  在乙機服務器程序中Form_Load()加入

  sckserver(0).bind sckserver(0).LocalPort '與本地端口綁定

  sckserver(0).listern ' 偵聽

  如果要傳輸數據,兩機必須先建立連接。建立連接的程序如下:

  甲機客戶機要先請求連接

  sckconnect.connect sckconnect.RemoteHost, sckconnect.RemotePort

  此句執行時會觸發服務器程序中的ConnectRequest事件,在此過程中決定是否建立連接,其代碼如下:

  Private sub sckserver_connectionrequest(index as Integer,Byval requestid as long)

  if sckserver.count=1 then

  load sckserver(1)

  sckserver(1).accept requestId

  end if

  end sub

  連接建立好以后,甲機或乙機都可以應用SendData方法來傳送數據。例如,如果是甲機要傳送一個叫string的
字符串,只需在代碼中加入:

  sckconnect.SendData string

  甲機傳送數據后,會觸發乙機的DataArrival事件,在其過程中用GetData方法可以收到傳送的數據:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 肃南| 高雄市| 桐庐县| 宁远县| 新营市| 吉木萨尔县| 弥渡县| 长沙县| 马龙县| 光泽县| 辽宁省| 鹿邑县| 黎城县| 高雄市| 阿坝县| 赤壁市| 蒙阴县| 平顶山市| 新民市| 井陉县| 黔南| 临湘市| 乐亭县| 和林格尔县| 陆川县| 江源县| 蓝山县| 汝城县| 普宁市| 达尔| 睢宁县| 虞城县| 寻乌县| 西城区| 江永县| 康平县| 余干县| 哈巴河县| 莱州市| 嵊泗县| 获嘉县|