2008-12-02 79 views
39

我正在開發P2P應用程序,我需要通過使用UPnP的NAT路由器/防火牆進行通信。但是,似乎.NET Framework不包括對UPnP的支持。是否有.NET(C#或VB.NET)的UPnP庫?

是否有UPnP的圖書館.NET? 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)

+2

操作嘿,謝謝你的詳盡的文章和項目一個體面的教程。我正在嘗試它,它在32位Win7系統上出色地工作 - 但是在64位Win7系統上,UPnPNATHelper.StaticPortMappings始終爲NULL。你有什麼見解嗎? – saurabhj 2011-12-07 06:42:50

回答

20

有一個COM庫,它是很容易訪問:

UPnP APIs目的

通用即插即用™架構能夠動態 智能家電網絡, 無線設備和PC。有 兩個API與 UPnP認證的設備的工作:

控制點API,它由一組用於 查找和控制設備的COM接口的 。該設備 主機API,它由一組用於實現由計算機託管 設備 COM接口。

+7

我在這裏寫了一篇包含代碼示例的文章:.NET Framework:通過NAT路由器通過UPnP(通用即插即用)進行通信 - http://pietschsoft.com/post.aspx?id=31200e6d-4b61-48b8-a9cb-91e3dd8e97f3 – 2009-04-15 02:48:37

+1

@ChrisPietschmann鏈接截止到2012年9月14日 – Urda 2012-09-14 17:45:06

+1

@Urda,鏈接正在工作(再次)。 Wayback Machine鏈接:http://web.archive.org/web/20130813184633/http://pietschsoft.com/post/2009/02/05/NET-Framework-Communicate-through-NAT-Router-via-UPnP – 2014-01-13 13:01:46

3

Intels UPNP Tools用能的UPnP客戶端導出C#。該套件已棄用,但仍應該工作。

5

這個英特爾的UPnP工具已重新發布開源工具在:http://opentools.homeip.net。這些新工具被稱爲「UPnP技術的開發工具」。它們是用C#構建的,但是有一個可以輸出C和C#棧的免費代碼生成器。 C堆棧將在Windows和Linux上運行。

Ylian

+1

@ user230486宜蘭,你真的需要把這些東西變成一個COM .dll或.ocx,所以使用VB6或Delphi(或任何其他非.NET Win32設計器)的人可以使用你所投入的所有工作。目前的upnp.dll是一個控制的噩夢,我不希望不得不使用它對我最大的敵人,請至少創建一個Com Wrapper。 – 2012-09-01 17:33:50

3

如果有人需要一個簡單的圖書館,我寫了一個使用UPnPLib COM組件C#類庫。它具有打開和關閉端口的一些基本功能。我還沒有在多個平臺上進行過測試,但它適用於Windows 7中的Visual Studio 2010.請隨時下載它http://sourceforge.net/projects/easyupnp/

3

對於NAT,特別是有Mono.Nat。

23

我已經書面圍繞微軟UPnP控制點COM對象,它可提供完整的源代碼和演示項目的全面管理的UPnP庫,你可以在這裏從CodePlex網站下載:

http://managedupnp.codeplex.com/

它支持使用對象的全面遍歷的UPnP描述文件,除此之外,它非常易於使用。