日本国产亚洲-日本国产一区-日本国产一区二区三区-日本韩国欧美一区-日本韩国欧美在线-日本韩国欧美在线观看

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

用Winsock編寫網絡通信程序

用Winsock編寫網絡通信程序

更新時間:2019-06-29 文章作者:未知 信息來源:網絡 閱讀次數:

文/徐大華

  Winsock是Microsoft Windows提供的網絡編程接口,它提供了基于TCP/IP協議的接口實現方法。用戶不必了解TCP,通過設置Winsock控件的屬性并調用它的方法,就可以與一臺遠程計算機相連,從而實現數據傳輸。

  TCP/IP協議提供了兩種同其他計算機進行通信的方式:TCP和UDP方式。具體采用哪種方式,要視以下三種情況而定:


  1、如果應用程序在收發數據時需要得到客戶端或服務器端的確認或應答,則使用TCP方式;

  2、如果需要發送的數據量特別大則使用TCP方式;

  3、數據發送是間歇的,或是在一個會話內?如果發送通知一類的短信息,UDP方式是最適合的。

  關于Winsock控件

  Winsock控件在使用前需先在工具箱面板中單擊鼠標右鍵,從彈出的菜單中選擇“部件”菜單,從“部件”對話框中選擇Microsoft Winsock Controls 6.0,將它添加到工具箱中。在使用Winsock控件前必須先了解它的基本屬性和方法:

  1、Protocol:用于設置和返回Winsock控件所使用的協議;

  2、LocalPort:設置或返回本地通信程序端;

  3、RemotePort:設置或返回要連接的遠程計算機通信程序的端口號;

  4、RemoteHost:設置或返回遠程計算機名,并向它發送數據或從那里接收數據;

  5、State:返回控件的當前狀態。通過它的值決定控件的下一步處理狀態;

  6、Listen:用于服務器程序,等待客戶訪問。僅適用于TCP方式;

  7、Accept:用于接收連接請求,適用于TCP服務器應用程序,當有連接請求時用此方法接受請求以建立連接;

  8、SendData:用于將數據發送給遠程計算機。可在TCP/UDP兩種方式下使用;

  9、GetData:用來取得接收到的數據,并將數據存儲在變體類型的變量中,然后清除接收緩沖區;

  10、Close:對客戶機和服務器應用程序關閉TCP連接。

  實例制作

  本例是通過Winsock控件的遠程通訊功能,采用TCP協議來設計一師生聊天程序。

  1、教師機即服務器

  在這里需要兩個Label控件和一個Winsock控件。

  對于Winsock的端口號(LocalPort),通常選擇大于100的整數,以避免同其他通信程序產生沖突。該程序通過Text1的Change事件,向客戶端的Text2發送數據。

  程序代碼如下:

  Private Sub Form_Load()

  Winsock1.LocalPort = 1001 '設置本地計算機通信程序端口

  Winsock1.Listen '等待客戶機訪問

  Form2.Show '顯示客戶機界面

  End Sub

  Private Sub Text1_Change()

  Winsock1.SendData Text1.Text '將數據傳輸給客戶機

  End Sub

  Private Sub Winsock1_ConnectionRequ-

  est(ByVal requestID As Long)

  If Winsock1.State<>sckClosed Then

  Winsock1.Close

  Winsock1.Accept requested '用于接收連接請求

  End If

  End Sub

  Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)

  Dim aa As String

  Winsock1.GetData aa '接收客戶機傳輸過來的數據

  Text2.Text = aa '將客戶機傳輸過來的數據顯示在Text2中

  End Sub

  2、學生機即客戶機

  在這里需要的兩個Label控件、兩個Command控件以及一個Winsock控件。

  程序代碼如下:

  Private Sub Command1_Click()

  Form2.Winsock1.Connect '同遠程計算機建立連接

  End Sub

  Private Sub Command3_Click()

  End '結束程序運行

  End Sub

  Private Sub Form_Load()

  Winsock1.RemoteHost = "遠程計算機名"

  '獲取遠程計算機名

  Winsock1.RemotePort = 1001 '獲取遠程計算機通信程序的端口

  End Sub

  Private Sub Text1_Change()

  Winsock1.SendData Text1.Text '向服務器發送數據

  End Sub

  Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)

  Dim aa As String

  Winsock1.GetData aa '接收服務器傳輸入過來的數據

  Text2.Text = aa '將接收的數據在Text2中顯示出來

  End Sub

  運行服務器程序,再運行客戶端程序,最后單擊客戶端窗全上的“連接”按鈕,這時就可實現兩個計算機間的通信了。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

主站蜘蛛池模板: 亚洲精品一区二区三区四区 | 爽爽视频在线观看 | 国产精品99久久久久久董美香 | 欧美日韩亚洲综合在线一区二区 | 国产欧美日韩在线不卡第一页 | 91久久综合九色综合欧美亚洲 | 91大神精品长腿在线观看网站 | 青青啪 | 日韩一级欧美一级毛片在 | 伊人久久大香线蕉综合网站 | 国产精品成人观看视频免费 | 久久精品无码一区二区日韩av | 免费观看视频成人国产 | 在线观看视频一区二区 | 国产在线观免费观看 | 波多野吉衣在线播放 | 在线天堂中文在线资源网 | 亚洲va乱码一区二区三区 | 亚洲欧美一区二区三区在线 | 激情文学在线视频 | 中文一区二区在线观看 | 亚洲午夜一区二区三区 | 欧美日韩中文在线观看 | 成人国产精品毛片 | 免费香蕉依人在线视频久 | 农村大尺度做爰呻吟小说 | 网曝门精品国产事件在线观看 | 午夜性色吃奶添下面69影院 | 91情国产l精品国产亚洲区 | 精品国产免费久久久久久 | 国产精品天天干 | 手机看片国产欧美日韩高清 | 天天干天天操天天舔 | 性一交一乱一伦一色一情孩交 | 久久久一区二区三区不卡 | 久久亚洲欧美成人精品 | 亚洲欧美日韩精品香蕉 | 日韩在线视频在线 | 亚洲成人在线免费观看 | www看片 | 久久色伊人 |