【问题标题】:Interprocess Communication / Broadcast进程间通信/广播
【发布时间】:2009-12-21 15:22:57
【问题描述】:

我有一个 Windows 服务(用 C# 实现),我有一个类似服务控制管理器的东西。我想跟踪从服务到服务控制管理器(这是一个窗口窗体应用程序)的消息,但我不确定这样做的最佳方法是什么。该服务应将消息广播给所有以非阻塞方式列出的客户端。

我考虑过使用命名管道或邮槽,但我不确定是否有更好的方法来做到这一点(我也不确定我是否可以使用这种技术实现广播)。

任何建议都将不胜感激。

【问题讨论】:

    标签: .net-3.5 ipc interprocess


    【解决方案1】:

    如果有多个客户端在监听,我认为命名管道会做更多的工作。我认为在这种情况下共享内存会更简单。如果客户端可能在单独的机器上,那么在不涉及大量数据的情况下,多播之类的东西可能是传输信息的一种简单方法。但是,多播范围通常仅限于单个子网,除非路由器专门配置为多播。

    【讨论】:

    • 感谢您的回复。客户端都在同一台机器上,因此我想避免涉及网络堆栈。共享内存听起来像是一种选择。但我更愿意为此使用 Windows 消息(尽管在 C# 中使用它们似乎有点麻烦)
    • 我同意您在这种情况下避免使用网络的评估。另一种可能更灵活的可能性,尤其是对于未来的更新,是使用 .Net Remoting (msdn.microsoft.com/en-us/library/kwdt6w2k(VS.71).aspx)。这可能是“官方”正确的做法。
    猜你喜欢
    • 1970-01-01
    • 2011-06-27
    • 1970-01-01
    • 1970-01-01
    • 2011-10-16
    • 2020-01-22
    • 1970-01-01
    • 2011-05-04
    相关资源
    最近更新 更多