我开始疯狂阅读论坛并尝试不同的Java UPnP库,但我的网络中找不到IGD。
首先,我要注意UPnP在我用C ++编写的程序(使用miniupnp)中运行良好,因此我的路由器已经配置为与UPnP配合使用。
Sending M-SEARCH * HTTP/1.1
HOST: 239.255.255.250:1900
ST: urn:schemas-upnp-org:device:InternetGatewayDevice:1
MAN: "ssdp:discover"
MX: 2
M-SEARCH Reply:
ST: urn:schemas-upnp-org:device:InternetGatewayDevice:1
Location: http://192.168.25.50:1780/InternetGatewayDevice.xml
...
我尝试使用weupnp(java的一种miniupnp)开发应用程序,使用sbbi upnp lib和Cling upnp,但奇怪的是所有三个API都无法从我的路由器中找到响应。
有人知道Java upnp API是否有某种依赖性或要求我不知道?
感谢您的帮助。
答案 0 :(得分:0)
该请求是否来自您的Java应用程序或C ++应用程序?我知道有些框架使用ST扫描设备:upnp:rootdevice使一些路由器只宣告自己,而不是任何其他设备。如果在路由器中关闭upnp,它会开始转发它们。
但基本上这是一个破碎的框架,你应该能够定义你正在扫描的ST。
如果您可以为Java应用程序提供有用的网络转储。
答案 1 :(得分:0)
Weupnp 0.1.2现在可以专注于特定的ST和过滤回复。
正如jishi所说,许多潜在问题来自upnp:rootdevice
消息。
如果您仍然需要此功能,我建议您尝试latest version of weupnp吗?
答案 2 :(得分:0)
请注意,EPC2425也可能存在问题,知道吃SSDP数据包:https://sonos.custhelp.com/app/answers/detail/a_id/42/~/network-hardware-compatibility