java upnp 端口映射_端口映射与UPnP
UPnP是通用即插即用(Universal Plug and
Play)的縮寫,它主要用于實現設備的智能互聯互通。使用UPnP協議不需要設備驅動程序,因此使用UPnP建立的網絡是介質無關的,它可以運行在幾乎
所有的操作系統平臺之上,可以使用任何開發語言,使得在辦公室、家庭和其他公共場所方便地構建設備相互聯通的網絡環境。UPnP實際上是擴展了傳統單機的設備和計算機系統的概念,在"零配置"的前提下提供了連網設備之間的發現、接口聲明和其他信息的交換等互動操作功能。
從UPnP的定義來看,它的功能不僅僅是能夠實現端口映射。但是實現端口映射是它的一項重要的功能,也是我們最常利用的功能。端口映射,可以理解為就是網絡地址的轉換,即NAT,那么UPnP是如何實現這種轉換的呢?
要實現UPnP,首先要操作系統支持這種協議,不過現在的操作系統,WinXP, Win2K, Vista都支持這個功能,不過系統默認不安裝,需要手動安裝。其次,路由器要支持UPnP協議,不過,現在的主流路由器都支持這個功能。最后,在程序中實現UPnP。下面的過程是程序利用UPnP協議實現端口映射:
1. 尋找UPnP設備
首先通過廣播的形式發送UDP數據報,如果收到了應答消息,根據應答消息可以得到UPnP設備的端口和地址。
這里面的廣播數據格式有嚴格的規定,可以查詢相關的資料。成功的找到UPnP設備,會收到類似
HTTP/1.1 200 OK 的消息響應。
2. 根據第一步獲得的路由器的IP和端口,和路由器建立Socket連接,獲取路由器的控制URL.
3. 根據第二步的控制URL, 向路由器發送添加端口映射的控制信息。
4. 如果第3步添加成功,則可以向路由器發送查詢映射項的信息。
5. 當程序退出的時候,需要發送刪除端口映射的控制信息,刪除端口映射。
參考資料:
http://www.ibm.com/developerworks/cn/linux/other/UPnP/part1/index.html
http://www.ibm.com/developerworks/cn/linux/other/UPnP/part2/index.html
http://blog.bc-cn.net/user22/155472/archives/2007/7520.shtml
閱讀(1158) | 評論(0) | 轉發(0) |
總結
以上是生活随笔為你收集整理的java upnp 端口映射_端口映射与UPnP的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: foobar2000的使用
- 下一篇: 多么乐alexa网站流量数据报告助手