我开始疯狂地阅读论坛,并尝试不同的Java库,但在我的网络中没有找到UPnP。
首先,我必须指出,在我用C++ (使用miniupnp)编写的程序中,UPnP工作得很好,所以我的路由器被正确地配置为可以与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开发应用程序,但奇怪的是,这三个APIs都无法从我的路由器上找到响应。
有没有人知道Java upnp API是否有一些我遗漏的依赖项或需求?
谢谢你的帮助。
发布于 2013-01-04 21:04:28
这是您的Java应用程序还是C++应用程序的请求跟踪?我知道一些框架使用ST: upnp:rootdevice扫描设备,这使得一些路由器只通告自己,而不是任何其他设备。如果你在你的路由器上关闭了upnp,它就会开始转发它们。
但基本上,这是一个损坏的框架,您应该能够定义您正在扫描的ST。
如果您也能为您的Java应用程序提供网络转储,这将是非常有用的。
发布于 2013-05-03 06:46:21
Weupnp 0.1.2现在可以专注于特定的ST,并根据这一点过滤回复。
正如吉石所说,许多潜在的问题来自于upnp:rootdevice消息。
如果你仍然需要这个,我建议你试试latest version of weupnp。
发布于 2013-06-12 19:39:42
注意,EPC2425也可能是一个问题,我们知道要吃掉SSDP包:https://sonos.custhelp.com/app/answers/detail/a_id/42/~/network-hardware-compatibility
https://stackoverflow.com/questions/10231097
复制相似问题