兩台 Android 機在同一 Wi-Fi 下互連有哪些方法?
純小白問一下這個問題,我在網上搜索,好像這個目前沒有什麼很好的辦法。。。
其實是導師要做一個app,讓我找這麼一個方案,就好象用socket/http/url編程一樣使用。。。在網上找到一個adhoc網路,可能水平比較低,沒太明白。。。
es explorer
Wlan Direct(Wlan直連),一般都自帶
TCP/UDP協議都行。兩個手機都在wifi設置裡面關掉DHCP,設置靜態的IP。在編程裡面,利用socket向設置好的IP互傳信息。基本用不到100行代碼吧。
假如現在有兩台手機,A和B,都接在了一個wifi下面。
現在,A要與B通訊,可是A並不知道B的地址,甚至來說,A根本不知道B的存在。
第一步,A必須獲取到B的IP地址。
我們一般傳輸東西時候用tcp協議。按照教科書上說的,tcp協議會建立一個虛擬的鏈接。那麼,使用tcp的前提是你必須先知道對方的IP。比如,我們訪問一個網站的時候,必須先輸入網站的域名。顯然,用tcp是無法獲取到B的IP地址的。
那麼,有別的辦法嗎?其實是有的。
tcp的好基友,udp協議。
udp里有個玩意叫做廣播。
如果你寫的App是Android的,你可以寫一個Service,然後讓手機加入到一個廣播ip地址裡面去。
通訊的時候,讓A發送一個廣播,這樣,加入這個廣播ip的所有設備都會收到這個廣播。而這條廣播里,就可以包含A的ip地址(A當然可以獲取到自己的IP),當然也可以包括一個B的唯一標識,這樣就可以避免同一個廣播里的其他設備回應。當B收到這條廣播後,可以通過唯一標識知道呼叫的是我,也可以通過ip知道是誰呼叫的我。
這是,B就可以主動與A建立一個tcp連接。兩個人就可以搞基了。
qq:1366951595
歡迎交流。
以前做過一個智能家居的玩意,用的原理大概就是這樣~~~tcp udp 。你想想呢些手機wifo聯機遊戲,文件近傳,還有一個wlan direct 。這些不都可以嗎???
如果你下了完整的sdk的話,google 提供的android sample中就有android直連的demo。4.4.2的demo中有個WiFiDirectDemo,可以傳輸一張圖片,然後在另一個android設備上展示出來。你可以參考參考,很快寫出一個可用的。
去我的github找到一個接linknet的項目??跟你的需求一模一樣??
我想這個項目應該就是你想要的吧!仿茄子快傳的一款文件傳輸應用, 涉及到Socket通信,包括TCP,UDP通信。(喜歡的給一個star, 有幫助的給一個fork, 歡迎Star和Fork ^_^)
下面是我項目的鏈接地址:mayubao/KuaiChuan
ES瀏覽器啊,在同一個wifi下。可以的。
http://developer.android.com/reference/android/net/nsd/NsdManager.htmlhttp://developer.android.com/reference/android/net/nsd/NsdServiceInfo.html你看看可以嗎?我也不是很清楚
可以看看快牙有沒有源碼(?_?)
快牙
tcp udp隨便用
快牙
手機QQ有個類似的功能面對面快傳。還有別的APP也有類似這樣的功能,例如茄子快傳,我覺得可以先看一看這方面。
推薦閱讀:
※綠色守護將迎來怎樣的變化?
※如何評價 Xposed 插件「阻止運行」?
※什麼是 Android 簽名機制,Bluebox Security 發現的漏洞有何威脅?
※市面上大部分國行版安卓手機都不安裝谷歌框架和安卓市場,是廠家還是政府決定的?是潛規則嗎?
※Kindle Fire 能夠像一般的 Android 平板一樣使用非 Amazon 內容嗎?