c# - 多应用网络的最佳方法?
问题描述
我在做一些实验时有一个奇怪的设置。在此设置中,我有 6 个应用程序。我们称它们为A
,B
和C
(x4)。
A
连接B
并监听来自 4 个不同实例的 4 个不同端口C
。
B
在 1 个端口上侦听来自A
4 个不同端口的连接,并在 4 个不同的端口上连接C
.
每个实例C
在一个端口上侦听一个连接B
,然后连接到A
另一个端口。
这是一个精彩的艺术作品来说明:
为了管理连接,每个侦听器都NewConnection
订阅了相同的处理程序。
收到连接后,我将其添加到List<Connection>
.
当在 上接收消息时A
,我再次将 1EventHandler DataReceived
用于来自不同 C 实例的所有连接。每次引发事件时,数据都会添加到ConcurrentQueue<byte[]>
. 此队列由所有连接到A
.
目前我只有 4 个C
,但如果还有更多呢?我怎样才能设计这个以便n
C
可以连接到A
?
另外,对于所有这些连接,我只有 1 个NewConnection
和 1 个DataReceived
事件处理程序,并且所有进入 A 的数据都进入相同的状态,这可以吗?ConcurrentQueue?
任何有关方法的建议将不胜感激。我不确定这是否是最有效的做事方式。