通过网络广播服务器存在

时间:2009-08-15 17:13:44

标签: c++ network-programming

我正在编写一个客户端 - 服务器应用程序,其中客户端应该能够自动检测网络中的服务器存在,以便用户不必弄乱手动配置。

我认为服务器应以某种方式广播其存在。最好的方法是什么?

服务器要在Windows / Linux或OS X上运行,因此解决方案应该是跨平台的。客户端和服务器是用C ++编写的。

2 个答案:

答案 0 :(得分:4)

您应该将ZeroConf视为广播此信息的通用方式。它在Apple系统上也被称为Bonjour(以前称为Rendezvous),但它不是Apple特有的东西 - 许多其他设备(包括嵌入式和操作系统)广播/使用它。

有很多库可以用很多语言处理ZeroConf - 找到一个是Google搜索的问题。请记住,ZeroConf本身就是流程的广告/发现部分,并标识了一台机器和一个套接字 - 但您可以通过所识别的套接字执行任何操作。

例如,Apache mod_zeroconf允许您广播Apache站点。您的解决方案将取决于您所依赖的许可和使用权利。

答案 1 :(得分:2)

如果您想自己动手,可以使用multicasting。 一些(脑死亡)方法是: 1)让服务器定期向订阅的客户端通告它的存在,然后在客户端和客户端之间进行单播传输。服务器; 2)让客户端信号(多次)它对订阅服务器的存在,再次跟随服务器和服务器之间的单播传输。客户。 还有一件事需要考虑,即多播将全部为UDP,单播可以是TCP或UDP。

相关问题