2012-04-19 69 views
1

我开始疯狂地阅读论坛,尝试使用不同的Java UPnP库,但在我的网络中找不到IGD。UPnP Java库存在的问题

首先我要说的是,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(一种miniupnp为Java的)应用程序,使用UPnP的SBBI lib和保鲜的UPnP,但奇怪的所有三个API无法找到我的路由器响应。

有谁知道Java upnp API是否有一些依赖或要求我失踪?

感谢您的帮助。

+1

我可以在其他图书馆,但没有发表评论[ohNet](http://www.openhome.org/wiki/OhNet)包含工作Java绑定。您可以在项目wiki上找到文档链接,源代码包含演示如何实施大多数标准操作的测试。 (我应该注意到我为这个项目做出贡献) – simonc 2012-04-19 15:48:46

+0

就在昨天,我终于为我做了Cling工作。显然,我在我的项目中缺少teteal常用jar(它在核心库文件夹中)。没有其他的依赖需要。所以这个项目包括:cling-core-1.0.5.jar,teleal-common-1.0.13.jar和cling-support-1.0.5.jar。我正在使用FreeBSD,linux和Cisco EPC2425家庭路由器进行测试。 – Audrius 2012-04-30 09:21:18

+0

weupnp适用于我的freebox(http://portail.free.fr/) – Aubin 2012-11-23 19:28:03

回答

0

这是从您的Java应用程序或C++应用程序的请求跟踪?我知道一些框架使用ST扫描设备:upnp:rootdevice,这使得一些路由器只会宣布自己,而不是任何其他设备。如果您在路由器上关闭upnp,它将开始转发它们。

但基本上这是一个破碎的框架,你应该能够定义你正在扫描的ST。

如果您还可以为您的Java应用程序提供网络转储,那么这将非常有用。

0

Weupnp 0.1.2现在可以专注于特定的ST并据此过滤回复。

正如jishi所说,很多潜在的问题来自upnp:rootdevice消息。

如果你仍然需要这个,我可以建议你试试latest version of weupnp