总之:如何可靠地发现一个(大概是多段式)局域网络,客户端零配置创建一个Windows(win32)中的服务在网络上发现
我的客户端应用程序来定位上的某个地方运行的服务器服务器应用程序不知道服务器IP地址。它必须在本地局域网上工作,该局域网可以通过集线器或其他交换设备分成多个段。
我已经有了一个工作解决方案,但是让它在多网段网络上工作有点麻烦。它的工作原理如下:
当客户端启动时,它会在自己的网段上发送UDP广播。如果服务器在同一个网段上运行,则它没有任何问题 - 服务器用相应的消息进行响应。
如果服务器和客户端正在由不转发UDP的hub/switch分开的网络上运行(最有可能的情况),那么我有一个服务器实例在每个段上运行,并且它们将客户端请求转发给每个其他通过TCP - 但我需要配置这个服务器实例(简单,但仍然是一个技术支持的痛苦。)这是我需要解决的主要问题。有些网站我们有数百个客户在5或6个单独的网段上运行。
我面临的问题: 1.尽管我的应用程序安装程序在防火墙上启用了适当的端口,但有时候我会遇到这种情况似乎并不正确。 2.必须在不转发UDP的集线器/交换网络上运行多个服务器实例(并因此配置和维护它们)最后,我需要一个无需维护即可在最小的Windows网络(XP/2000) 2000/Vista),可能没有配置Active Directory或其他查找服务。
我不想标记任何运行时的东西 - 应该可以用普通的VC++或Delphi来完成。
商业应用程序通常采取哪些方法?我知道SQL Server使用广播和NetBEUI调用的组合(我对此可能是错误的)。
在此先感谢。
在upnp.org或许有一个如何做到这一点的提示? – djangofan 2009-10-12 19:09:24