C# 命名管道的安全性

C# 命名管道的安全性,c#,named-pipes,C#,Named Pipes,我想知道使用System.IO.pipes(没有WCF)通过命名管道传输数据有多安全 是否需要在数据传输后检查例如md5 sum,或者最好为其实现事务,如果需要,是否有任何不使用p/Invoke来TransactionNamedPipe的直接方法(我想在.net中没有包装器) 或者TCP比命名管道更安全 编辑: 此外: 我真正想的是,如果服务器或客户端崩溃,会发生什么情况——那么交付呢 命名管道为您提供 在相同/不同机器上的两个进程之间使用ACL(访问控制列表)的通信通道(与TCP不同,TCP

我想知道使用System.IO.pipes(没有WCF)通过命名管道传输数据有多安全

是否需要在数据传输后检查例如md5 sum,或者最好为其实现事务,如果需要,是否有任何不使用p/Invoke来TransactionNamedPipe的直接方法(我想在.net中没有包装器)

或者TCP比命名管道更安全

编辑:

此外:

我真正想的是,如果服务器或客户端崩溃,会发生什么情况——那么交付呢

命名管道为您提供

  • 在相同/不同机器上的两个进程之间使用ACL(访问控制列表)的通信通道(与TCP不同,TCP需要自己保护对通道的访问)
  • 通道名称(类似于TCP端口),但基本上不限制名称的数量

  • 通过传输,写+读操作将自动成功/失败(通过TCP,您需要自己实现这种操作)

两者都能保证数据的交付。

您所说的“安全”是什么意思?你担心什么?数据丢失?是的,我想知道我是否能确保数据能完整地传递。就像您可以使用文件或TCP连接一样确定。无需在读取数据后对其进行校验和。那么TransactionNamedPipe的用途是什么?事实上,甚至还有事务性ntfs方法,它的事务提供了写+读操作。你是指TransactionNamedPipe还是其他什么?@user1121956是的,Jonathon Reinhart已经讨论过这种行为(不是DB类型的事务,只是作为原子操作的单写+读)。