首页 > 解决方案 > C#:实现命名管道中介的最佳方式

问题描述

我正在尝试以最有效的方式实现命名管道读取器/写入器。简而言之,Powershell 通过命名管道使用 Powershell 远程协议(XML + 二进制)与调试主机通信。我想让这个过程远程化,所以要实现这一点,我想:

  1. 设置以下流链:NamedPipeServerStream <-> TCP Stream <-> NamedPipeServerStream(在另一台计算机上),然后客户端将连接到远程 namedpipeserverstream。出于这些目的,仅通过 SMB 远程连接到命名管道是不够的,它需要封装在单个 TCP 连接中
  2. 我希望我的客户端/服务器守护程序做的就是从一侧监听数据并将其传递给另一侧,这样我就可以从远程系统连接一个 powershell 调试进程。
  3. 一旦我得到这个工作,我将用一个像 ngrok 或 Azure Relay Hybrid COnnection 这样的集合服务替换 TCP 流,这样我就可以启动一个调试过程,然后在任何地方远程调试它。

基本上我想在c#中重新创建socat。最好的非阻塞方式是什么?任务?System.IO.Pipeline?

标签: c#.net

解决方案


推荐阅读