1

我有一个web service,我将database通过该 Web 服务访问。我将使用 Web 服务将文本文件保存到我的数据库中。

在将文件保存到数据库之前,我想确保文件没有更改。

我不知道该怎么做。可以请任何人解释我如何做到这一点。指定步骤就足够了。

编辑

我将我的文本文件作为byte array. 换句话说,我想确保我发送的所有字节都按原样接收到 Web 服务。(没有损坏或丢失数据)。我也可以控制网络服务。

4

2 回答 2

1

您通常不需要检查,您有不同的通信层为您执行此操作。

如果包裹在运输过程中丢失,它将被重新发送,如果损坏,将被更正/重新发送。假设您使用的是TCP/IP 协议,您的传输层保证数据将正确传输,而无需您处理它。

(这是一个文件而不是流媒体视频,UDP 协议可能会损坏数据,这在视频/音频中是可以的)

*只是为了澄清:你在应用层。 图层示例

编辑:

来自关于 TCP/IP 的维基百科:

这种抽象还允许上层提供下层不提供的服务。虽然最初的 OSI 模型被扩展为包括无连接服务 (OSIRM CL),[16] IP 的设计并不是为了可靠,而是一种尽力而为的交付协议。这意味着所有传输层实现必须选择是否或如何提供可靠性。UDP 通过校验和提供数据完整性,但不保证交付;TCP 通过重新传输直到接收方确认接收到数据包来提供数据完整性和传递保证

于 2013-07-08T09:43:05.253 回答
1

您应该计算文件的校验和,以在客户端验证它。

string checkSum=null;
using (System.Security.Cryptography.MD5 md5 = System.Security.Cryptography.MD5.Create()) {
  checkSum= BitConverter.ToString(
    md5.ComputeHash(Encoding.UTF8.GetBytes(theString))
  ).Replace("-", String.Empty);
}
于 2013-07-08T09:47:25.703 回答