确定是否已连接NamedPipeClientStream

时间:2011-09-21 07:36:34

标签: c# process stream pipe

我使用PipeConnection进行流程通信存在问题

我的想法是:

  

A - 处理A
  B - 过程B
  1.(堆客户端)想要向B(管道服务器)发送消息   B读取消息并断开连接。

     
    

2.1如果B需要回答     2.2 B(管道客户端)连接到A(堆栈服务器)     2.3 A读取消息和断开。

  

如果A向B发送消息并且imedlitley想要再次发送另一条消息,则会出现问题

代码示例:

//Server
static void Main(string[] args)
    {
        using (NamedPipeServerStream server = new NamedPipeServerStream("EOG", PipeDirection.In))
        {
            StreamReader sr = new StreamReader(server);

            while (true)
            {
                server.WaitForConnection();
                Console.WriteLine("Conected to client");
                try
                {
                    Console.WriteLine(sr.ReadLine());
                    server.Disconnect();
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
            }
            sr.Dispose();
        }
    }
}



//Client
static void Main(string[] args)
    {
        using (NamedPipeClientStream client = new NamedPipeClientStream(".", "EOG", PipeDirection.Out))
        {
            StreamWriter sw = new StreamWriter(client);
            while (true)
            {
                Console.WriteLine("Message: ");
                sw.WriteLine(Console.ReadLine());
                if (!client.IsConnected)
                    client.Connect();
                sw.Flush();
            }
            sw.Dispose();
        }
        Console.ReadKey();
    }

0 个答案:

没有答案