对于简单的IPC,我选择了NamedPipes在进程(本地)之间进行通信。
由于需求的变化,服务器应该有多个实例,这会导致同一个pipename上有多个“监听器”。
但似乎有问题。这些侦听器中只有一个获取消息,而其他每个实例都没有。有没有“广播”消息的方式?
我已经看过this question,这基本上是同一个问题,但它没有答案。
现在我使用的管道服务器与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");
}
答案 0 :(得分:1)
最后,我找到了一个解决方案(不确定它是否最佳 - 但它有效)。它基于使用 NamedPipeClientStream.NumberOfServerInstances 。 查看我的 question thread