我正在开发一个P2P应用程序,我需要使用UPnP通过NAT路由器/防火墙进行通信.但是,.NET Framework似乎不包含对UPnP的支持.
是否有适用于.NET的UPnP库?C#还是VB.NET?
更新:我发现NATUPnP 1.0类型库(NATUPNP.DLL)COM组件是Windows(自Windows XP以来)的一部分,允许您使用UPnP轻松设置/维护端口转发.
我在这里写了一篇包含代码示例的文章: .NET Framework:通过NAT路由器通过UPnP进行通信(通用即插即用)
我在微软UPnP控制点COM对象周围编写了一个完全托管的UPnP库,它有完整的源代码和一个演示项目,您可以从CodePlex下载它:
http://managedupnp.codeplex.com/
它支持使用对象heirachy完全遍历UPnP描述文档,其中包括非常容易使用.
有一个很容易访问的COM库:
UPnP API目的
UPnP™框架支持智能设备,无线设备和PC的动态联网.有两个API可用于使用UPnP认证的设备:
的控制点的API,它由一组用来寻找和控制装置COM接口.该设备主机API,它由一组用于实现由计算机主机设备的COM接口.
Mono.Nat是一个非常好的upnp库,至少在我的情况下,到目前为止,我使用NATUPnP的问题比较少.
你可以在这里下载它,你可以在http://www.fluxbytes.com/csharp/upnp-port-forwarding-the-easy-way/找到一个关于如何操作它的体面教程.
此英特尔UPnP工具已作为开源工具重新发布:http://opentools.homeip.net.这些新工具被称为"UPnP技术的开发人员工具".它们是用C#构建的,但是有一个免费的代码生成器可以输出C和C#堆栈.C堆栈可以在Windows和Linux上运行.
Ylian
正在四处寻找这些东西并找到了::
mono-upnp :: https://github.com/mono/mono-upnp
Mono.Nat :: https://github.com/mono/Mono.Nat