代码之家  ›  专栏  ›  技术社区  ›  Ishmaeel

远程处理服务器自动发现。广播与否?

  •  4
  • Ishmaeel  · 技术社区  · 16 年前

    我有一个与.NET远程处理通信的客户机/服务器应用程序。我需要我的客户机能够在网络上找到服务器,而不需要客户机端配置。

    据我所知,远程处理不支持发现。我准备实现一个UDP解决方案,客户机可以通过广播消息找到服务器。

    我想在开始之前听到集体的智慧。这是最好的方法吗?还有什么建议吗?

    5 回复  |  直到 16 年前
        1
  •  4
  •   oz10    16 年前

    对于这种功能,我已经研究了ssdp和upnp,但我建议使用自定义的udp multicast 解决方案。基本上,多播与广播非常相似,但是只有加入多播组的机器(即请求广播)才被联系。

    imho、ssdp和upnp,以及膨胀和过度复杂的资源发现…但是,这是一个标准。;)

        2
  •  1
  •   Tim Farley    16 年前

    似乎你需要的是 Simple Service Discovery Protocol 或SSDP。这是在Windows中实现的,作为Microsoft对 Universal Plug and Play . 因为这是一个行业标准协议,所以看起来是一个不错的选择。例如,如果您想处理防火墙或其他问题,这将由其他人解决,而不是您必须推出自己的解决方案。

    既然你在说.NET,我假设你在Windows上。有一个有点老的文档(2001)描述了一个C风格的API和一个用于Windows的COM API Universal Plug and Play (UPnP) Client Support . COM API由upnp.dll公开,用于ssdpi的C样式API由ssdpi.dll公开。

    这个 COM-style APIs for UPNP 可能是你最好的选择。因为C可以为您包装COM对象并处理互操作。我找不到任何地方可以将此API移植到C或.NET框架。

        3
  •  1
  •   Will Hartung    16 年前

    你也可以考虑苹果的 Bonjour ,这是他们的 Zeroconf 实施。它可用于Mac、PC和Linux/BSD。

        4
  •  0
  •   Rob Bazinet    16 年前

    在远程处理工作中,我找到的最佳解决方案是将服务器列表保存在客户机系统的配置文件中,并使其可更新。不是最容易维护的,但速度很快,没有广播。

        5
  •  0
  •   Rohit    16 年前

    由于最近的MS更新,我的多播UDP解决方案似乎不可靠。