关于使用英特尔UPNP的VirtualDirectory处理程序的任何示例/教程?

我一直在使用英特尔的UPNP库在一个VB.NET项目中,尽pipe缺乏文档使得它很难(从字面上猜测我在每行代码中使用的属性/方法),我已经能够弯曲我的意志,我有一个非常实用的应用程序,在Windows上使用UPNP。

我的问题是,我现在想能够将设备主机的文件传输到控制点。 Googlesearch答案显示,英特尔的UPNP使用embedded式Web服务器处理与UPNP相关的所有事情,并且可以使用AddVirtualDirectory方法将自定义目录添加到我的设备中。 但是,那么运气就结束了。 没有文件,没有例子,什么都没有。

所以我的问题是:有谁知道如何使用它? 所有我发现的是,该方法需要2个委托函数,声明为VirtualDirectoryHandler,但我不知道我该怎么做这些。

谢谢你的帮助。

莱斯特

所以要明确要求:控制点需要从设备上下载(下载)图像。 设备不需要访问(推)到控制点。 没有其他设备会尝试访问已经存储在控制点上的图像。 因此只有设备需要实现ContentDirectory,控制点不需要。

我建议您阅读UPnP规范包的 Mediaserver文件夹中的UPnP -av-ContentDirectory文档(任何版本)。 查找CreateObject,DeleteObject,ImportResource,ExportResource。 如果我上面的假设是正确的,但实际上并不需要它们,但要理解UPnP中文件传输的含义。 我承认并不知道有关英特尔UPnP的任何信息,所以我们只能从普通的UPnP知识和随机全文搜索中进行猜测。

要启用对象下载,设备需要提供可浏览的媒体存储。 基本上,你需要在设备上实现GET请求处理程序。 UPnP只不过是一个特殊的网络服务器,加上一些多播和额外的头文件。 这就是为什么“英特尔的UPNP使用嵌入式Web服务器”。 任何UPnP设备都是一个网络服务器 。 英特尔UPnP已经包含MediaserverDevice.Webserver_OnHeaderReceiveSinkWebserver_OnPacketReceiveSink的VirtualDirectoryHandler的实现。 有机会,你可以使用这个开箱即用的MediaserverDevice.cs来实现ContentDirectory。 在整个SDK中查看VirtualDirectoryHandler用法,以了解如何使用它。

控制点下载器将需要执行AVTransport.Browse命令来查找要下载的图像的资源URL。 英特尔的MediaBrowser.cs看起来很有希望。 我建议您阅读上面指出的文档的开头,以了解UPnP ContentDirectory的导航结构。 如果有疑问,请从英特尔工具套件运行DeviceSpy并手动查询您的设备。 从ObjectID“0”开始。 没有什么能帮助您更好地理解ContentDirectory,而不是看到原始的XML DIDL响应。

一旦你的控制点知道资源的URL,你只需通过HTTP GET下载。 因为控制点也是目标存储,所以不需要花哨的ImportObject。 这最后一部分在技术上不是关于UPnP的。