簡體   English   中英

使用WCF進行流數據傳輸

[英]Streaming data transfer using WCF

在WCF中使用流式請求傳輸大文件時,如何確保已在客戶端接收到數據。 我的意思是我該如何確保可靠的數據傳輸並獲得確認。

我不能肯定我說對了。 但是,如果我這樣做,那么:

http://www.dotnetcurry.com/showarticle.aspx?ID=721

如果不是,請更詳細地說明您期望何時以及從服務中獲得哪種處置

您可以嘗試在發送數據之前創建數據的校驗和,然后在收到數據后可以再次計算校驗和並驗證其正確性。

我們要做的是在發送字節數組之前先計算它的MD5哈希值,然后將該文本值與字節包一起發送給主機,然后由主機計算另一個MD5哈希值(同樣基於字節數)並進行比較預期的MD5哈希值(由客戶端發送)和在主機上新計算的哈希值。 如果它們不相同,則說明您沒有獲得完整的文件,從而迫使您將該錯誤發送回響應中。

這是我們用於計算哈希的小函數的示例:

Protected Function GetMD5HashFromBuffer(ByVal oBuffer As Byte()) As String
  Dim md5 As System.Security.Cryptography.MD5 = New MD5CryptoServiceProvider
  Dim retVal() As Byte = md5.ComputeHash(oBuffer)
  'fileSize = file.Length
  'file.Close()
  Dim sb As StringBuilder = New StringBuilder
  Dim i As Integer = 0
  Do While (i < retVal.Length)
    sb.Append(retVal(i).ToString("x2"))
    i = (i + 1)
  Loop
  Return sb.ToString
End Function

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM