什么是NamedPipeServerStream和NamedPipeClientStream?

时间:2013-08-21 17:46:09

标签: c# named-pipes

我想知道为什么NamedPipes存在于.Net中,如果我有一个应用程序要创建某种代理来拦截它与目标服务器的连接,我怎么能从中受益。

我想要使用NamedPipes创建一个代理Minecraft,它拦截服务器 - 客户端连接并打印出已发送的数据包,收到fromto服务器数据包学习的目的和乐趣...

[注意]我只问了那个有点广泛的问题,因为我还没有使用NamedPipes工作的项目,其主题的MSDN报道非常平庸。

1 个答案:

答案 0 :(得分:0)

存在用于同一台机器上的进程间通信的命名管道。通常,每个控制台程序都有2个预定义的管道:stdin(可读)和stdout(可写)。除此之外,还可以创建更多管道。

NamedPipeServerStream的目的是创建一个可由客户端使用的新管道。通常在需要向另一个进程提供一些数据时创建它:

var myInputPipe = new NamedPipeServerStream("myinput", 
    PipeDirection.Out, 1, PipeTransmissionMode.Byte);
如果要连接到现有管道(通常用于读取数据),则使用

NamedPipeClientStream

在您的上下文(Minecraft的代理)中,如果您想为现有管道创建代理,这些类是适用的;如果您需要创建网络代理,则管道不适用。