[問題] upnp port

看板AndroidDev作者 (全 民 號 召)時間11年前 (2014/12/22 14:56), 11年前編輯推噓0(009)
留言9則, 1人參與, 最新討論串1/1
因為在寫android 要能夠從遠端傳檔案給 位於內網的智慧型手機 目前我用的方式是upnp的 port mapping 但是被糾正說這個方法不好 因為說這樣不就要每台手機自己去設定port number? 而且手動設定還會發生同網域的智慧型手機設定到相同的port number 他是說使用UPNP port應該由upnp自動管理 而不是使用者要自己手動設定 就像同時有電風扇跟電冰箱接上upnp upnp會自動分配porte給這兩台設備 供人連線 但我想UPNP自動管理PORT功能嗎? 我對於upnp的問題是 device 向upnp註冊服務 會有用到port嗎? 不然就是 利用UPNP 進行遠端連線內部網路(不使用port mapping)有辦法達成嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.138.150.27 ※ 文章網址: http://www.ptt.cc/bbs/AndroidDev/M.1419231362.A.CA8.html

12/22 16:20, , 1F
http://miniupnp.free.fr/ 的方案很多可以參考
12/22 16:20, 1F

12/22 16:21, , 2F
ps: upnp基本上只能過一層NAT
12/22 16:21, 2F
這句話不太懂

12/22 16:22, , 3F
assign port用簡單的演算法就可以不會重覆
12/22 16:22, 3F
所以目前只能用NAT的方式 解決外網傳檔案到內網的問題 是吧? 因為他說的方式 我一直很糾結到底有沒有人不用NAT就能做到不同網域溝通 他說是既然UPNP中 CP可以去探索附近的設備 並控制她 中間是用port來區分 (UPNP自動分配port)例如:port 8534是冷氣機、port 5369是電視 那麼一定可以透過port number 從外面的internet連到內網的冷氣機或者是電視 所以遵循這樣方式 外面也能透過upnp的方式傳檔案給內網的手機 但是我怎覺得這兩件事是不同的事 因為我只是要兩台不同網域的設備要溝通 而不是要控制

12/23 00:50, , 4F
不知道你用的封包是UDP還是TCP?
12/23 00:50, 4F
我是用socket 來做點對點傳送 所以是TCP

12/23 00:51, , 5F
通常設備識別我自己做法是發廣播封包設備會回傳相關資訊回
12/23 00:51, 5F

12/23 00:54, , 6F
另外過NAT因為封包會重組所以處理上會比較麻煩所以要麻就
12/23 00:54, 6F

12/23 00:54, , 7F
是省事走雲端架構,不然就是用super node之類的東西,還請
12/23 00:54, 7F

12/23 00:55, , 8F
高人指點
12/23 00:55, 8F

12/23 00:58, , 9F
不然就要多多google其他的技術只是要注要一下專利的問題
12/23 00:58, 9F
※ 編輯: aiweisen (140.138.238.132), 12/23/2014 09:43:48
文章代碼(AID): #1Kby22oe (AndroidDev)