是否可以在不支持多播而仅支持广播的环境中使用 SLP(服务定位协议)?据我所知,这应该是可行的,但我无法让它工作。
假设我有一个非常简单的小型网络,只有几台计算机连接到非托管交换机。因此没有可以处理多播组表的路由器。
使用 OpenSLP 时,服务器端(实现 SLP SA(服务代理)的 Windows 服务)有一个选项,强制它使用广播而不是多播。到目前为止一切顺利。但我如何告诉 OpenSLP 在 UA(用户代理)端使用广播(例如,在调用 SLPFindSrvs 时)?
我想做的只是在该网络中进行一个小测试,在一台计算机上(slpd 作为 Windows 服务运行)我使用以下方法注册一个服务
slptool register service:myserv.x://myhost.com
在另一台计算机上,我想使用以下方法查找该服务
slptool findsrvs service:myserv.x
但未找到任何服务...
答案1
感谢 OpenSLP 新闻组的 Roel,我找到了解决方案。这不是网络问题,而是误用的问题slptool
。以下是 Roel 写的内容:
使用默认设置,注册将在注册进程消失几秒钟后自动删除。这是为了防止保留未正确取消注册的进程的“悬而未决”注册。
如果您使用“slptool register”,则进行注册的进程是“slptool”,它会立即退出。因此,注册会在几秒钟后自动删除。
尝试使用带有“net.slp.watchRegistrationPID = false”的配置文件。
不幸的是,这个设置没有记录,并且在使用说明中也没有任何提示slptool
......
所以回答我的问题:是的,可以在没有多播路由器的网络中运行 SLP(OpenSLP)。