2

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

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

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

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

这有什么标准做法?

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

4

1 回答 1

1

你的问题有两个部分:

  • 如何定位服务?
  • 如何发现服务是否正在运行?

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

那么如何定位呢?通常你会想避免广播。典型的方法是:

  • 在客户端配置服务器的名称。
  • 添加自定义 DHCP 选项;客户端可以从 DHCP 服务器查询您的服务器的地址。

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

于 2012-03-03T16:35:07.230 回答