【问题标题】:Is there a UPnP Library for .NET (C# or VB.NET)? [closed]是否有 .NET(C# 或 VB.NET)的 UPnP 库? [关闭]
【发布时间】:2010-09-24 21:18:31
【问题描述】:

我正在开发一个 P2P 应用程序,我需要让它使用 UPnP 通过 NAT 路由器/防火墙进行通信。但是,.NET Framework 似乎不包含对 UPnP 的支持。

有 .NET 的 UPnP 库吗? C# 还是 VB.NET?

更新:我后来发现了 NATUPnP 1.0 类型库 (NATUPNP.DLL) COM 组件,它是 Windows 的一部分(自 Windows XP 起),它允许您使用 UPnP 轻松设置/维护端口转发。

我在这里写了一篇带有代码示例的文章: .NET Framework: Communicate through NAT Router via UPnP (Universal Plug and Play)

【问题讨论】:

  • 感谢您提供详尽的文章和项目。我正在尝试它,它在 32 位 Win7 系统上运行良好 - 但是在 64 位 Win7 系统上,UPnPNATHelper.StaticPortMappings 始终为 NULL。您对此有何见解?

标签: .net networking upnp


【解决方案1】:

我围绕 microsoft UPnP 控制点 COM 对象编写了一个完全托管的 UPnP 库,它提供了完整的源代码和一个演示项目,您可以从 CodePlex 下载它:

http://managedupnp.codeplex.com/

它支持使用对象层次结构对 UPnP 描述文档进行完全遍历,并且非常易于使用。

【讨论】:

  • 这看起来很有希望,我会在我的项目中尝试一下。
  • 很好,但底层对象似乎已损坏。设备查找器从不发送发现数据包。
【解决方案2】:

有一个很容易访问的 COM 库:

UPnP APIs目的

UPnP™ 框架支持动态 智能家电联网, 无线设备和个人电脑。有 两个用于使用的 API UPnP 认证设备:

控制点 API,包括 一组 COM 接口用于 查找和控制设备。 设备 Host API,由一组 COM接口用于实现 由计算机托管的设备。

【讨论】:

【解决方案3】:

Mono.Nat 是一个非常好的 upnp 库,至少就我而言,与使用 NATUPnP 时相比,我遇到的问题更少。

你可以在here下载它,你可以在http://www.fluxbytes.com/csharp/upnp-port-forwarding-the-easy-way/找到一个不错的操作教程

【讨论】:

    【解决方案4】:

    此英特尔 UPnP 工具已作为开源工具重新发布,网址为:http://opentools.homeip.net。新工具被称为“UPnP 技术的开发者工具”。它们是用 C# 构建的,但有一个免费的代码生成器可以输出 C 和 C# 堆栈。 C 堆栈适用于 Windows 和 Linux。

    依莲

    【讨论】:

    • @user230486 Yilan,你真的需要把这些东西变成 COM .dll 或 .ocx,这样使用 VB6 或 Delphi(或任何其他非 .NET Win32 设计器)的人才能使用你所做的所有这些工作'我投入了。当前的 upnp.dll 是控件的噩梦,我不希望在我最大的敌人身上使用它,请至少创建一个 Com Wrapper。
    【解决方案5】:

    亲自四处寻找这些东西,发现::

    mono-upnp:: https://github.com/mono/mono-upnp

    Mono.Nat:: https://github.com/mono/Mono.Nat

    【讨论】:

      【解决方案6】:

      我用这个,好像没问题:

      http://code.google.com/p/dotnetportmapper/

      【讨论】:

        【解决方案7】:

        Intels UPNP Tools 曾经能够在 C# 中导出 UPnP 客户端。该套件已弃用,但应该仍然可以使用。

        【讨论】:

          【解决方案8】:

          如果有人需要一个简单的库,我编写了一个使用 UPnPLib COM 组件的 c# 类库。它具有打开和关闭端口的一些基本功能。我还没有在多个平台上对其进行测试,但它可以在 Windows 7 中的 Visual Studio 2010 上运行。请随时通过 http://sourceforge.net/projects/easyupnp/ 下载它

          【讨论】:

          【解决方案9】:

          对于 NAT,有 Mono.Nat。

          【讨论】:

            猜你喜欢
            • 2010-12-20
            • 1970-01-01
            • 2011-03-14
            • 2015-01-11
            • 2010-09-10
            • 2011-02-25
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多