NamedPipe多个服务器

时间:2014-08-21 13:32:40

标签: c# ipc named-pipes

对于简单的IPC,我选择了NamedPipes在进程(本地)之间进行通信。

由于需求的变化,服务器应该有多个实例,这会导致同一个pipename上有多个“监听器”。

但似乎有问题。这些侦听器中只有一个获取消息,而其他每个实例都没有。有没有“广播”消息的方式?

我已经看过this question,这基本上是同一个问题,但它没有答案。

CODE:

现在我使用的管道服务器与this answer

非常相似

我的客户端(在本例中为发件人)代码为:

public static void SendToPipe(string pipeName, string data)
{
    using (var p = new NamedPipeClientStream(pipeName))
    {
        p.Connect();

        using (var w = new StreamWriter(p))
        {
            w.WriteLine(data);
            w.Flush();
        }
    }
}

respectivly:

static void Main(string[] args)
{
    SendToPipe("DEFAULT_PIPE_NAME", "Some string to transmit");
}

1 个答案:

答案 0 :(得分:1)

最后,我找到了一个解决方案(不确定它是否最佳 - 但它有效)。它基于使用 NamedPipeClientStream.NumberOfServerInstances 。 查看我的 question thread