代码之家  ›  专栏  ›  技术社区  ›  luvieere

如何将控制台C程序的输入和输出重定向到套接字?

  •  1
  • luvieere  · 技术社区  · 15 年前

    如何将控制台C程序的输入和输出重定向到套接字?我需要从另一个进程中启动程序,并使它接收输入,并将输出发送到网络中另一台计算机上运行的另一个进程。我要做的是以编程方式在另一个工作站上运行应用程序,同时从当前终端控制它。

    3 回复  |  直到 15 年前
        1
  •  3
  •   Wim    15 年前

    使用 System.Diagnostics.Process 类来运行控制台程序。

    System.Diagnostics.Process process = new System.Diagnostics.Process();
    process.StartInfo.RedirectStandardInput = true;
    process.StartInfo.RedirectStandardOutput = true;

    然后您可以将任何流(包括网络流)连接到 process.StandardInput process.StandardOutput .

        2
  •  1
  •   Reed Copsey    15 年前

    您需要设置 ProcessStartInfo.RedirectStandardInput RedirectStandardOutput . 这允许您提供用于控制台应用程序的标准输入/输出的流。

    然后,您可以将数据从进程流复制到套接字流和从套接字流复制数据。

        3
  •  0
  •   Frank Krueger    15 年前

    为什么要重定向?

    如果这是应用程序的核心功能,那么您应该 Stream 代码使用而不是依赖的变量 Console.Out 等。

    流可以从一个套接字、一个文件打开,无论代码是什么。