日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

WLAN 直连(对等连接或 P2P)调研及 iOS 跨平台调研

發布時間:2024/3/26 编程问答 57 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WLAN 直连(对等连接或 P2P)调研及 iOS 跨平台调研 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 研究背景
  • Andorid端:WiFi-P2P
    • 官方定義
    • 其他定義
    • 重要特性
    • 擴展
    • 使用場景
  • Demo研究
    • Android端
    • iOS端
  • 第三方開源跨平臺研究
  • 下一步方向
  • 參考

研究背景

  • 兩個設備連接同一局域網不同頻率的網絡后,兩端可能出現不能正常通信的問題。
  • 如果通過Socket進行本地局域網通信,不在一個網絡會出現找不到設備IP,無法連接的問題,外網走服務器會出現延遲、數據同步不準確的問題。
  • 在混合網絡場景中,在連接AP時,既能同時在兩端點對點通信,并且兩端也能分別進行外網訪問。
  • 新技術方向必要條件:需要同時支持Android和iOS兩端。
  • Andorid端:WiFi-P2P

    Wifi P2P (peer to peer):定義為 Wifi 點對點,也叫 Wifi 直連(Wifi Direct),它是 Wifi Display(投屏) 應用的技術基礎。

    官方定義

    使用 WLAN 直連 (P2P) 技術,可以讓具備相應硬件的 Android 4.0(API 級別 14)或更高版本設備在沒有中間接入點的情況下,通過 WLAN 進行直接互聯。使用這些 API,您可以實現支持 WLAN P2P 的設備間相互發現和連接,從而獲得比藍牙連接更遠距離的高速連接通信效果。對于多人游戲或照片共享等需要在用戶之間共享數據的應用而言,這一技術非常有用。

    其他定義

    WiFi Direct是指允許無線網絡中的設備無需通過無線路由器即可相互連接。其原理與藍牙技術類似,這種標準允許無線設備以點對點形式互連。而更為重要的是,WiFi Direct技術允許一個WiFi設備同時建立多個無線連接,這是目前很多新形態WiFi應用最關鍵的技術。

    WiFi Direct是一種P2P的無線互聯技術,它所建立的網絡是一種改進型的adhoc網絡,采用無線通訊模式。

    WiFi兩種網絡模式:Infrastructure Mode 和Ad Hoc Mode.

    WiFi Direct主要解決了物理層的連接問題,包括設備發現和服務發現等。相關技術有NFC和DLNA。

    WiFi Direct其他特性:

    • 不需要AP或者路由器,設備內置“soft AP”
    • 對等連接的雙方只需一方支持WiFi Direct即可實現無線互聯
    • 同時支持基礎設施網絡和P2P網絡。
    • 可以以一對一或者一對多的方式形成設備互聯
    • 至少符合802.11g協議才可以通過WiFi Direct CERTIFIED驗證
    • 最大傳輸距離可達到200米,最大傳輸速度為250Mbps,使用2.4GHz與5GHz兩種頻段頻段,并它支持一對一,以及一對多模式。

    重要特性

  • Wifi P2P 技術并不會訪問網絡,但由于會使用到 Java Socket,所以需要申請網絡權限。

  • 只需要打開 Wifi 即可,不需要加入任何網絡或 AP,即可實現對等點連接通訊。(注:在后文的demo中有驗證)

  • 支持服務器給群里設備發送消息。

  • Wifi Direct實現的只是設備間的配對,配對后的文件傳輸操作還是需要開發者自己來做的。

  • 擴展

    Miracast依賴的Wi-Fi技術項有:

    • Wi-Fi Direct,也就是Wi-Fi P2P。它支持在沒有AP(Access Point)的情況下,兩個Wi-Fi設備直連并通信。
    • Wi-Fi Protected Setup:用于幫助用戶自動配置Wi-Fi網絡、添加Wi-Fi設備等。
    • 11n/WMM/WPA2:其中,11n就是802.11n協議,它將11a和11g提供的Wi-Fi傳輸速率從56Mbps提升到300甚至600Mbps。WMM是Wi-Fi Multimedia的縮寫,是一種針對實時視音頻數據的QoS服務。而WPA2意為Wi-Fi Protected Acess第二版,主要用來給傳輸的數據進行加密保護。

    上述的Wi-Fi技術中,絕大部分功能由硬件廠商實現。而在Android中,對Miracast來說最重要的是兩個基礎技術:

    • Wi-Fi Direct:該功能由Android中的WifiP2pService來管理和控制。
    • Wi-Fi Multimedia:為了支持Miracast,Android 4.2對MultiMedia系統也進行了修改。

    使用場景

  • 手機連接到某AP上網,運行youtube客戶端看視頻;手機同時通過Wi-Fi Direct連接到電視,將視頻通過Wi-Fi Direct Display投射到大銀幕上.

  • 可實現通過 Wifi 連接,同時使用數據網絡的場景,比如:手機遙控無人機的同時,無人機需要訪問遠程服務器上傳數據。

  • 目前在市場上,Client形式(客戶、用戶使用的)的WiFi產品(無論是USB接口、SDIO接口還是UART接口)都支持WiFi Direct,只是這項技術的用戶感知不強。市面上其實已經有很多用WiFi Direct底層技術的App,例如快牙、瓦力快傳等利用智能手機自身的WiFi模塊自建網絡并傳送文件。

  • Demo研究

    Android端

    說明:根據官方的demo,整理成Andorid Studio中可編譯的項目,并添加測試用例。

    代碼及測試apk請點擊:WiFiDirectDemo

    官方文檔:WLAN 直連(對等連接或 P2P)概覽
    官方源碼鏈接:WiFiDirectDemo

    測試安裝包:
    在apk目錄下,文件名為:wifidirectDemo.apk。

    測試用例:

    測試之前,記得首先打開手機WiFi,否則部分手機可能出現閃退的問題。

    設備支持必要條件:開啟WiFI并允許獲取定位權限。

    以下為五種測試場景:

  • 同一局域網場景:
    兩個手機連接WLAN熱點:如Test(2.4G/5G),在同一個網絡下。
    運行結果:兩個手機能正常通信,能正常收發圖片。

  • 同一局域網分離出兩個路由:
    一個手機連接WLAN熱點:如Test-15G),另一個手機連接Test(2.4G/5G)。

  • 運行結果:兩個手機能正常通信,能正常收發圖片。

  • AP隔離場景:
    一個手機連接4G網絡虛擬的人個熱點,一個手機連接Test(2.4G/5G)。
    運行結果:兩個手機能正常通信,能正常收發圖片。
  • 兩個手機只需要打開WiFi,不需要連接任何網絡。
  • 運行結果:兩個手機能正常通信,能正常收發圖片。
    5. 開發板的測試場景

    同上述四種測試場景。

    小結:只要兩端都打開wifi,無論連的是否同一個網絡,都可以連接上并收發圖片。

    異常情況:

    有時候會出現搜索不到的情況,需要多試幾次才能搜索成功。另外需要Rom取消發送邀請、確認配對連接彈窗。

    iOS端

    Multipeer connectivity是一個使附近設備通過Wi-Fi網絡、P2P Wi-Fi以及藍牙個人局域網進行通信的框架。

    互相鏈接的節點可以安全地傳遞信息、流或是其他文件資源,而不用通過網絡服務。

    此框架是在iOS7以后推出,旨在替代GameKit下的GKPeerPickerController通信。

    通過此框架我們可以直接連接同一網絡下的設備,讓其直接進行類似微信,qq那樣的即時通訊效果。

    使用場景:

    如何在iPhone移動設備上使用Wi-Fi Direct功能

    第三方開源跨平臺研究

    Android-iOS 跨平臺傳輸方案調研

    https://stackoverflow.com/questions/28906948/peer-to-peer-android-and-ios-with-wifi-direct-multipeer-connectivity

    • AllJoyn

    alljoyn(目前只找到Android 項目services-simulators,iOS端沒有找到 )

    AllJoyn,由高通公司主導的高通創新中心(Qualcomm Innovation Center)所開發的開放源代碼專案,主要用于近距離無線傳輸,透過Wifi或藍牙技術,進行定位與點對點檔案傳輸。

    • FireChat

    (Android端和iOS端都有相應的App。未找到開源的項目)

    FireChat,是一個專門用于手機的APP,由開放花園公司開發。它能使智能手機在沒有網絡存取時,經由無線網狀網絡的藍牙、Wi-Fi,或蘋果公司的多點連線(Multipeer Connectivity)對等網絡架構連線。

    • udark (Android和iOS端都有開源項目,Android端底層未用到WiFi-P2P接口,以藍牙和NSD為主,兩端文檔接口不完善)

    Mobile peer-to-peer mesh networking library.Integrates into iOS and Android apps and works over Wi-Fi and Bluetooth.

    重點對udark進行Demo驗證,驗證后發現存在以下問題:

    Android 端:

    可以看到底層源碼(只能通過implementation 'io.underdark:underdark:1.0.12'查看jar包),底層代碼初步判斷是基于藍牙和WiFI(NSD)混合模式實現。但是連接成功或是失敗,尋找原因時,由于沒有文檔接口說明不好定位問題。

    iOS端: 真機存在適配系統版本13及以上的適配問題,目前只能在iOS模擬器上跑通Demo。代碼不開源,無法看到連接原理,無法定位問題。

    文檔:

    兩端沒有接口文檔說明,開源作者也無法進一步聯系。

    結論

    該開源項目暫時不能在項目中運用,需要考慮其他方向。

    下一步方向

    • MQTT
      MQTT學習筆記以及在項目中的實際運用(2021-1-10新增)
    • ……

    最后,如果你看到了此文,對Wifi P2P及跨平臺通信研究感興趣,歡迎交流。

    參考

    Wi-Fi Direct

    [轉載]深入理解Wi-Fi P2P

    Android 10.0相關權限的變更(使用WiFi Direct必須打開定位)

    WiFi和AP共存方案研究–Android8.0

    Android 實現無網絡傳輸文件1

    Android 實現無網絡傳輸文件2(wifi熱點)

    手機端對端直連技術

    Android無網絡傳輸文件之WifiP2P

    WifiDirect (WIFIP2P) 最全最詳細,應用于智能硬件(智能家居,車機,無人機)等

    Android Wi-Fi Display(Miracast)介紹(其中的第四種Miracast拓撲圖應用場景有用)

    三種主流無線同屏技術介紹(Miracast、DLNA與AirPlay技術)

    總結

    以上是生活随笔為你收集整理的WLAN 直连(对等连接或 P2P)调研及 iOS 跨平台调研的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。