在做一些实验时,我有一个奇怪的设置。
在此设置中,我有6个应用程序。我们称它们为A
,B
和C
(x4)。
A
连接到B
,并侦听来自C
的4个不同实例的4个不同端口。
B
在1个端口上侦听来自A
的连接,并在4个不同的端口上连接到C
的4个不同实例。
每个C
实例在一个端口上侦听来自B
的连接,然后在另一个端口上连接到A
。
这是一件精彩的艺术品,可以说明:
要管理连接,每个侦听器都订阅了相同的NewConnection
处理程序。
收到连接后,我将其添加到List<Connection>
。
在A
上接收消息时,我再次使用1 EventHandler DataReceived
进行来自C的不同实例的所有连接。每次引发事件时,数据都会添加到{{1} }。此队列由进入ConcurrentQueue<byte[]>
的所有连接共享。
目前我只有A
中的4个,但是如果还有四个呢?我该如何设计以便C
n
可以连接到C
?
还可以,对于所有这些连接,我只有1个A
和1个NewConnection
事件处理程序,到A的所有数据都进入同一个DataReceived
任何有关方法的建议将不胜感激。我不确定这是否是最有效的处理方法。