前面介紹了DSAPI多功能組件編程應用-HTTP監聽服務端與客戶端的內容,這裏介紹一個適用於更高效更快速的基於HTTP監聽的服務端、客戶端。編程
在本篇,你將見到史無前例的超簡化超傻瓜式的HTTP監聽服務,與前篇中的不一樣,在DSAPI中,指令版同時包含了服務端與客戶端。數組
先來看一下使用方法,幾乎不須要太多的說明,固然,它是支持事件的。所謂指令版,即服務端和客戶端收發都是基於短字串的,好比客戶端發一個「hello「,服務端收到這個指令後返回一個」Hi"。爲確保傳輸的數據有效性,默認使用Base64加密後傳輸,且該屬性在指令版中隱藏,由於用戶用不到這個屬性。網絡
創建一個指令版Http監聽加密
Private WithEvents 服務端 As New DSAPI.網絡相關.HTTP監聽_指令版 With 服務端 .綁定端口 = 2000 '綁定端口 .參數前導符 = True '是否使用參數前導符,意義和前篇同樣 .容許外網鏈接 = True '是否容許外網請求 .啓動監聽() End With
僅僅幾句代碼,就完成了一個基於HTTP監聽的指令版服務端,支持的事件以下:.net
Private Sub 服務端_監聽已啓動() Handles 服務端.監聽已啓動 End Sub Private Sub 服務端_監聽已中止() Handles 服務端.監聽已中止 End Sub Private Sub 服務端_收到指令(客戶端 As DSAPI.網絡相關.HTTP監聽_指令版.監聽客戶端_指令版, 指令內容 As String) Handles 服務端.收到指令 End Sub Private Sub 服務端_遇到錯誤(錯誤 As Exception) Handles 服務端.遇到錯誤 End Sub
處理接收到的指令code
Private Sub 服務端_收到指令(客戶端 As DSAPI.網絡相關.HTTP監聽_指令版.監聽客戶端_指令版, 指令內容 As String) Handles 服務端.收到指令 Select Case 指令內容 Case "hello" 服務端.寫入信息到指定客戶端輸出流(客戶端, "hello,my friend") Case "get" 服務端.寫入信息到指定客戶端輸出流(客戶端, IO.File.ReadAllBytes("c:\1.rar")) Case Else 服務端.寫入信息到指定客戶端輸出流(客戶端, "No") End Select End Sub
發來的指令內容直接在參數中提供,以便select case,一樣,返回給客戶端的,能夠是文本,也能夠是字節數組,好比一個文件。blog
服務端的創建和使用就是上面這些,下面演示如何創建一個指令版客戶端。事件
建議一個指令版Http監聽客戶端ci
Private WithEvents 客戶端 As New DSAPI.網絡相關.HTTP監聽_指令版.監聽客戶端_指令版 With 客戶端 .超時時間 = 1000 '自定義超時時間 .服務端IP或域名 = "127.0.0.1" .服務端端口號 = 2000 End With
就這麼簡單,好了,如今看一下如何使用客戶端向服務端發送一個指令並獲取返回數據。get
MsgBox(客戶端.獲取數據("hello"))
一句代碼,什麼?就這樣?是的,你沒看錯,就這麼簡單。這就是我所謂的指令版,相信你必定喜歡。