繁体   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