小编PGP*_*tor的帖子

C# 保持管道打开

我有两个程序(服务器/客户端)我正在尝试为它们设置 IPC(它们都在同一个盒子上运行)使用 System.IO.Pipes & Net 3.5

当我调用 ComOpen 时,它会正确打开管道,将进程 ID 发送到服务器,但随后管道关闭,当它尝试发送“第二次写入测试”时出现错误

所以问题是。我如何在程序的整个生命周期内保持管道打开?(如果客户端崩溃,我使用服务器上的进程 ID 关闭所有内容)

private static StreamWriter MyWriter;
private static StreamReader MyReader;
private static NamedPipeClientStream IPCPipe = new NamedPipeClientStream(".", "MyPipe", PipeDirection.InOut);


    public static bool MyWrite(string DataOut)
    {
        bool ValidPipeOut = false;
        if(ValidComPort)
        try
        {
            // Send Data
            using (QstWriter = new StreamWriter(IPCPipe))
            {
                QstWriter.AutoFlush = true;
                QstWriter.WriteLine(QstDataOut);
                QstWriter.Close();
                QstWriter.Dispose();
            }
            ValidPipeOut = true;
        }
        catch
        {
            ValidPipeOut = false;
        }
        return ValidPipeOut;
    }


    public static bool ComOpen()
    {
        ValidComPort = …
Run Code Online (Sandbox Code Playgroud)

c# pipe

5
推荐指数
1
解决办法
2627
查看次数

标签 统计

c# ×1

pipe ×1