使用命名管道时,发送数据的正确方式是什么

本文关键字:数据 是什么 方式 管道 | 更新日期: 2023-09-27 18:24:41

我想通过命名管道将大数据发送到另一个进程。换句话说,我有类似的东西:

var dataToSend = new byte[1024*1024]; // some large data
NamedPipeServerStream server = new NamedPipeServerStream("MyPipeName");
server.WaitForConnection();
server.Write(dataToSend,0,dataToSend.Length); // is it ok to send 1048576 bytes at once !??

我必须把dataToSend分成更小的块吗?如果这个方法有效,我只是担心它将来可能会坏掉。我应该修理它吗?

编辑

在客户端,我用while循环读取流,我认为这样做是正确的。我只是担心发送方(在这种情况下是服务器)。

使用命名管道时,发送数据的正确方式是什么

如果检查并验证发送,您可能就可以了。拆分一个巨大的发送(千兆字节)可能是有意义的,这样重新发送就不会那么糟糕。一百万字节将在几毫秒内传输;试着计时。它会很快。