使用WCF进行流数据传输

时间:2013-12-16 10:37:49

标签: wcf

在WCF中使用流式传输请求传输大型文件时,如何确保在客户端收到数据。我的意思是如何确保可靠的数据传输并获得认可。

3 个答案:

答案 0 :(得分:0)

我不确定我是否帮助你。但如果我这样做,那么:

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

如果没有,请更具体地说明您希望服务的时间和回复

答案 1 :(得分:0)

您可以尝试在发送数据之前创建数据的校验和,然后在收到数据后,您可以再次计算校验和并验证它是否正确。

答案 2 :(得分:0)

我们做的是在发送之前在字节数组上计算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