2

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

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

[注意] 我只问了一个很宽泛的问题,因为我还没有一个使用 NamedPipes 的项目,而且 MSDN 对其主题的覆盖率非常平庸。

4

1 回答 1

0

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

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

var myInputPipe = new NamedPipeServerStream("myinput", 
    PipeDirection.Out, 1, PipeTransmissionMode.Byte);

NamedPipeClientStream当您想要连接到现有管道(通常读取数据)时使用。

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

于 2017-04-07T09:31:24.857 回答