客户发现服务的一些策略是什么?

例如,我们有一个客户端想要连接到服务(假设它们位于同一网络上的同一子网上),有什么好方法可以发现服务正在运行,然后客户端可以尝试连接到该服务?

我们是否希望客户端经常广播并等待服务响应?还是我们会经常广播该服务并让客户收听?

我认为我们希望该服务自行广播并让客户收听。

这是什么标准做法?

例如,该服务将类似于音乐播放器,当客户端通过wifi/网络对其进行远程控制时,它将播放音乐。想想用于iPhone的iTunes Remote,它可以在PC/MAC上控制iTunes播放器。

最佳答案

您的问题分为两部分:

  • 如何找到服务?
  • 如何发现服务是否正在运行?

  • 判断服务是否正在运行的正常方法是尝试连接到该服务。

    那么如何定位呢?通常,您希望避免广播。典型的方法是:
  • 在客户端上配置服务器的名称。
  • 添加自定义DHCP选项;客户端可以从DHCP服务器查询服务器的地址。

  • 如果您进行广播,则客户端发送查询是正常的。每次新客户端加入网络时,这都会为您提供一次广播,而如果服务器正在广告其位置,则与连续广播(以及客户端的延迟)不同。

    关于.net - Windows中的IP发现,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9540691/

    10-12 02:27