前面介紹了DSAPI多功能組件編程應用-HTTP監聽服務端與客戶端的內容,這裡介紹一個適用於更高效更快速的基於HTTP監聽的服務端、客戶端。 在本篇,你將見到前所未有的超簡化超傻瓜式的HTTP監聽服務,與前篇中的不同,在DSAPI中,指令版同時包含了服務端與客戶端。 先來看一下使用方法,幾乎不需要太 ...
前面介紹了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"))
一句代碼,什麼?就這樣?是的,你沒看錯,就這麼簡單。這就是我所謂的指令版,相信你一定喜歡。