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

时间:2013-07-24 19:35:44

标签: c# named-pipes

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

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循环读取流,我认为正确。我只是担心发送方(在这种情况下是服务器)。

1 个答案:

答案 0 :(得分:3)

如果您检查并验证发送,则可能没问题。打破一个巨大的发送(千兆字节)可能是有意义的,所以重新发送不会那么糟糕。一百万字节将在几毫秒内传输;尝试计时。它会非常快。