我正在开发一个完全在单个网络内运行的.NET解决方案。当用户对系统做出更改时,我想发布公告并让其他人听到并采取相应措施。是否有一种方法可以像使用UDP那样广播这些消息,同时保证交付(就像TCP一样)?
如果只有30个客户端的小型网络,则可能会有所不同。
如果只有30个客户端的小型网络,则可能会有所不同。
@epatel - 我支持SCTP建议(我投了赞成票,但还不能发表评论,所以在这里补充一些内容)。
SCTP具有许多出色的功能和灵活性。您可以将连接分成多个流,并选择每个流的可靠性以及它是否有序。或者,使用部分可靠性扩展,您可以按消息基础控制可靠性。
Apache ActiveMQ是一个消息代理,使用Java编写,同时具有完整的JMS客户端。但是,Apache ActiveMQ旨在通过多种协议(如Stomp和OpenWire)进行通信,并支持许多不同的语言特定客户端。
客户端平台支持包括c#和.net
read(max_size = 2)
来确定下一条消息的大小,然后使用read(max_size = s)
来收集该消息。你可以在应用层实现自己的类TCP行为。
例如,你可以发送UDP广播,但是期望每个主机都回复响应。如果在X秒内没有收到响应,则发送另一个请求,直到达到某种阈值。如果达到了阈值(即主机根本没有响应),则报告错误。
不过,要做到这一点,你需要预先定义一个主机列表,以便从中期望收到响应。