看板 AndroidDev 關於我們 聯絡資訊
因為在寫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
stanwu: 用 http://miniupnp.free.fr/ 的方案很多可以參考 12/22 16:20
stanwu: ps: upnp基本上只能過一層NAT 12/22 16:21
這句話不太懂
stanwu: assign port用簡單的演算法就可以不會重覆 12/22 16:22
所以目前只能用NAT的方式 解決外網傳檔案到內網的問題 是吧? 因為他說的方式 我一直很糾結到底有沒有人不用NAT就能做到不同網域溝通 他說是既然UPNP中 CP可以去探索附近的設備 並控制她 中間是用port來區分 (UPNP自動分配port)例如:port 8534是冷氣機、port 5369是電視 那麼一定可以透過port number 從外面的internet連到內網的冷氣機或者是電視 所以遵循這樣方式 外面也能透過upnp的方式傳檔案給內網的手機 但是我怎覺得這兩件事是不同的事 因為我只是要兩台不同網域的設備要溝通 而不是要控制
stanwu: 不知道你用的封包是UDP還是TCP? 12/23 00:50
我是用socket 來做點對點傳送 所以是TCP
stanwu: 通常設備識別我自己做法是發廣播封包設備會回傳相關資訊回 12/23 00:51
stanwu: 另外過NAT因為封包會重組所以處理上會比較麻煩所以要麻就 12/23 00:54
stanwu: 是省事走雲端架構,不然就是用super node之類的東西,還請 12/23 00:54
stanwu: 高人指點 12/23 00:55
stanwu: 不然就要多多google其他的技術只是要注要一下專利的問題 12/23 00:58
※ 編輯: aiweisen (140.138.238.132), 12/23/2014 09:43:48