標籤:
前面介紹了DSAPI多功能組件編程應用-HTTP監聽服務端與用戶端的內容,這裡介紹一個適用於更高效更快速的基於HTTP監聽的服務端、用戶端。
在本篇,你將見到前所未有的超簡化超傻瓜式的HTTP監聽服務,與前篇中的不同,在DSAPI中,指令版同時包含了服務端與用戶端。
先來看一下使用方法,幾乎不需要太多的說明,當然,它是支援事件的。所謂指令版,即服務端和用戶端收發都是基於短字串的,比如用戶端發一個“hello“,服務端收到這個指令後返回一個”Hi"。為確保傳輸的資料有效性,預設使用Base64加密後傳輸,且該屬性在指令版中隱藏,因為使用者用不到這個屬性。
建立一個指令版Http監聽
Private WithEvents 服務端 As New DSAPI.網路相關.HTTP監聽_指令版 With 服務端 .綁定連接埠 = 2000 '綁定連接埠 .參數前置字元 = True '是否使用參數前置字元,意義和前篇一樣 .允許外網串連 = True '是否允許外網請求 .啟動監聽() End With
僅僅幾句代碼,就完成了一個基於HTTP監聽的指令版服務端,支援的事件如下:
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
處理接收到的指令
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,同樣,返回給用戶端的,可以是文本,也可以是位元組數組,比如一個檔案。
服務端的建立和使用就是上面這些,下面示範如何建立一個指令版用戶端。
建議一個指令版Http監聽用戶端
Private WithEvents 用戶端 As New DSAPI.網路相關.HTTP監聽_指令版.監聽用戶端_指令版 With 用戶端 .逾時時間 = 1000 '自訂逾時時間 .服務端IP或網域名稱 = "127.0.0.1" .服務端連接埠號碼 = 2000 End With
就這麼簡單,好了,現在看一下如何使用用戶端向服務端發送一個指令並擷取返回資料。
MsgBox(用戶端.擷取資料("hello"))
一句代碼,什嗎?就這樣?是的,你沒看錯,就這麼簡單。這就是我所謂的指令版,相信你一定喜歡。
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
DSAPI多功能組件編程應用-HTTP監聽服務端與用戶端_指令版