02-Wifi通讯架构介绍
生活随笔
收集整理的這篇文章主要介紹了
02-Wifi通讯架构介绍
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
[1.1-Wifi通訊的定義]
[1.2-Wift通訊的三種經典場景]
[1.3-Wifi通訊流程]
[1.4-wifi通訊原理]
廢話不多說,有圖有真相
- 由于筆者之前的wifi硬件沒有備份,離職之后被公司回收,所以這里我使用筆者的MAC電腦作為服務器,筆者的iPhone6S手機作為客戶端演示wifi通訊
0301.gif
1.1-Wifi通訊的定義
- 利用wifi信號,是智能手機(iPhone)與硬件設備進行通訊的方式,稱之為Wift通訊
- 與HTTP不同的是,wifi通訊需要有智能硬件的參與,是屬于手機端與硬件端的通訊,而HTTP常用于手機端與后臺的通訊
1.2-Wift通訊的三種經典場景
1.Wifi通訊必須要有兩個參與者
- (1)路由器:通常又指服務端,主要作用是提供wifi信號
- (2)硬件:通常又指客戶端,既可以代表我們的手機也可以代表硬件設備,通訊雙方的數據發送者
- wifi通訊的本質就是由服務器負責轉發客戶端的消息數據
2.根據wifi智能家居的使用場景,wifi通訊主要有以下三種情況
- (1)手機直接與外部設備建立連接,這種情況需要外部設備內部有wifi信號發射器。 例如極路客行車記錄儀,只有攝像頭沒有播放器(特點是極其小巧),記錄儀無法直接看到錄制的影像,要想看到需要手機連接行車記錄儀的wifi(建立局域網),然后從記錄儀中拷貝視頻到手機中播放。
- (2)手機連接路由器,外部設備連接路由器,然后建立連接。這種情況比較常見,例如家用wifi版空氣凈化器,能夠連接家庭wifi,然后如果手機也連接的是同一wifi就可以通過APP控制設備(數據發送)
- (3)云端wifi通訊。這種wifi通訊場景是未來的大趨勢,(目前最火的就是膜拜,嚴格來說這不能叫wift通訊,因為手機4G網絡也可以,只是這種云端wifi通訊架構與膜拜單車解鎖原理很接近。 手機掃一掃將自行車信息發送到后臺服務器,然后后臺服務器發給膜拜單車路由器,進而控制單車解鎖。) 其實在另一個家用領域也已經開始了這種云端wift通訊的研發了,詳情可見下圖
第一種:手機-外部設備
- 這種方式的特點就是將路由器內置在外部設備中,外部設備既充當了服務器又充當了客戶端,優點就是省去了外部路由器簡化了通訊過程
0302.png
- 第二種:手機-路由器-外部設備
- 這種方式比較傳統,主要借助家居路由器來降低硬件的成本
0303.png
- 第三種:手機(客戶端)-云端(遠程服務器)-路由器(本地服務端)-外部設備(客戶端)
- 這種方式最大的好處就是解決了前面兩種手機和設備必須要連接同一路由器的情況,極大的提高了wifi通訊的便利性,也是未來的趨勢
- 想象一下,你提前把米洗好放進電飯煲,下班時,點擊APP開時煮飯,回到家時,飯已經煮好。如果電飯煲內置了網絡芯片是完全可以實現了,其實膜拜就是這樣遠程解鎖的
- 這種方式最大的好處就是解決了前面兩種手機和設備必須要連接同一路由器的情況,極大的提高了wifi通訊的便利性,也是未來的趨勢
0304.png
1.3-Wifi通訊流程
通過上圖可以看出,一個完整的wifi通訊的步驟大概如下:
1.服務端連接監聽網絡(ip地址+端口號)
2.客戶端連接服務端
3.客戶端發送數據,服務端接收到數據之后將數據轉發給其他客戶端,就實現了客戶端與客戶端的通訊
- 客戶端與客戶端是不能直接建立網絡的,必須要通過服務器。可以聯想一下,如果沒有后臺,你的APP還能給其他用戶發數據么?所有的數據都是后臺幫助我們轉發的
1.4-wifi通訊原理
wifi通訊的原理就是使用Socket(套接字)進行UDP(一對多)通訊
- HTTP的底層就是Socket,也就是說wifi通訊的網絡協議比傳統的HTTP更加的底層
Socket的英文原義是“孔”或“插座”。作為BSD UNIX的進程通信機制,取后一種意思。通常也稱作"套接字",用于描述IP地址和端口,是一個通信鏈的句柄,可以用來實現不同虛擬機或不同計算機之間的通信。在Internet上的主機一般運行了多個服務軟件,同時提供幾種服務。每種服務都打開一個Socket,并綁定到一個端口上,不同的端口對應于不同的服務。Socket正如其英文原意那樣,像一個多孔插座。一臺主機猶如布滿各種插座的房間,每個插座有一個編號,有的插座提供220伏交流電, 有的提供110伏交流電,有的則提供有線電視節目。 客戶軟件將插頭插到不同編號的插座,就可以得到不同的服務
Socket是一種通訊機制,用于描述IP地址和端口。IP地址用于找到你的電腦,端口號用于找到你這臺電腦上面的某一個應用程序的某一個服務
- 可以理解為:Scoket = IP地址+端口號
Socket工作流程
- 根據連接啟動的方式以及本地套接字要連接的目標,套接字之間的連接過程可以分為三個步驟:服務器監聽,客戶端請求,連接確認
- (1)服務器監聽:是服務器端套接字并不定位具體的客戶端套接字,而是處于等待連接的狀態,實時監控網絡狀態
- (2)客戶端請求:是指由客戶端的套接字提出連接請求,要連接的目標是服務器端的套接字。為此,客戶端的套接字必須首先描述它要連接的服務器的套接字,指出服務器端套接字的地址和端口號,然后就向服務器端套接字提出連接請求
*(3)連接確認:是指當服務器端套接字監聽到或者說接收到客戶端套接字的連接請求,它就響應客戶端套接字的請求,建立一個新的線程,把服務器端套接字的描述發給客戶端,一旦客戶端確認了此描述,連接就建立好了。而服務器端套接字繼續處于監聽狀態,繼續接收其他客戶端套接字的連接請求
總結
以上是生活随笔為你收集整理的02-Wifi通讯架构介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WatchOS系统开发大全(8)-WKI
- 下一篇: 05-WIFI通讯客户端搭建