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

标签 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 分成更小的 block ?使用这种方法效果很好,我只是担心它将来可能会崩溃。我应该修复它吗?

编辑

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

最佳答案

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

关于c# - 使用命名管道时发送数据的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17843314/

相关文章:

c# - AsP.Net MVC 5 如何在 View 中调用函数

winapi - 无缓冲 CreateNamedPipe 用作 CreateProcess 的标准输出

c++ - 使用 Boost::asio posix stream_descriptor 读取 ftrace 管道

c# - 命名管道保持服务器事件状态

c# - WCF HTTP 和 NamedPipe 服务

c# - EF6 - 在应用程序配置文件中找不到名为 'Data Source=...' 的连接字符串

c# - 对于我必须连接到服务器的每个 Tcp 连接,我如何单独管理每个连接?

javascript - 为什么 IE 无法关闭 "Cancel"按钮上的选项卡单击 c#

c# - 将 System.Drawing.Bitmap 转换为 stdole.StdPicture

.net-2.0 - 当消息变大时,IpcChannel Remoting变慢