亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Android的藍牙全雙工通信技術研究與實踐

        2023-03-20 04:44:20趙敏涯
        無線互聯(lián)科技 2023年1期
        關鍵詞:全雙工服務端監(jiān)聽

        趙敏涯

        (蘇州市職業(yè)大學 計算機工程學院,江蘇 蘇州 215104)

        0 引言

        藍牙技術有效地簡化了移動通信終端設備之間的無線短距離通信問題,使得數(shù)據(jù)傳輸更加迅速高效。藍牙技術工作在全球通用的2.4 GHz的ISM頻段,使用無須申請許可證,不需要支付任何費用,同時具備小體積、低功耗、低成本、高傳輸速率、抗干擾強、組網簡單等特點。因此,藍牙技術被廣泛應用于手機、電腦、汽車醫(yī)療等智能電子產品終端設備中[1-2]。

        藍牙技術發(fā)展至今已有20余年,早期的傳統(tǒng)經典藍牙BR/EDR的設計意圖是打電話時播放音樂,功耗高、數(shù)據(jù)量大、傳輸距離短,主要應用于早期的藍牙耳機和藍牙音箱等。隨著藍牙4.0技術的出現(xiàn),低功耗藍牙BLE成為主流,它更省電、低延遲、傳輸距離更長,區(qū)別于BR/EDR,BLE分為單模和雙模兩種設備。單模藍牙稱為Bluetooth Smart,有專有的logo,應用于功耗要求低的手表、共享單車鎖、防丟器等小型傳感器穿戴設備中。雙模藍牙稱為Bluetooth Smart Ready,也有專有的logo,支持BR/EDR和BLE,應用于智能手機、降噪耳機、智能電視遙控器等供電穩(wěn)定的移動設備中。

        1 藍牙通信基本流程

        藍牙技術建立了一個通用的無線電空中連接平臺級數(shù)據(jù)通信的公共標準,大大促進了計算機技術和無線通信技術的融合,讓不同的電子設備之間可以進行近距離連接與數(shù)據(jù)傳輸,而不再需要通信電纜就可實現(xiàn)互聯(lián)互通功能。

        藍牙通信采用時分全雙工傳輸技術,可以實現(xiàn)點對點或點對多點的無線交互功能。

        一個藍牙終端理論上可以同時連接最多7個藍牙設備。要在支持藍牙技術的設備之間進行通信,基本的工作流程如圖1所示。

        圖1 藍牙設備之間的基本通信流程

        任何無線通信技術都存在被監(jiān)聽和破解的可能,因此在進行通信之前,設備之間需要進行配對和連接。配對是兩個藍牙設備之間的首次通信認證,而配對成功之后的通信則不再需要每次確認。

        2 全雙工藍牙通信技術實踐

        2.1 整體設計思路

        各藍牙設備開啟藍牙功能,對于沒有配對的設備,先進行兩兩配對。已經配對成功的設備可以作為服務器開啟服務端線程,監(jiān)聽一個或多個客戶端設備的連接請求,連接成功后可以作為服務端進行消息的發(fā)送和接收。同時,配對成功的設備也可以作為客戶端向指定服務端設備發(fā)送連接請求,連接成功后可以作為客戶端進行消息的發(fā)送和接收。對于同一個設備,可以同時扮演客戶端和服務端的角色。基本通信流程如圖2所示。一個設備作為客戶端只能同時連接一個服務端,作為服務端則可以同時連接多個客戶端。

        圖2 藍牙通信流程

        其中,藍牙的開關、掃描發(fā)現(xiàn)、配對和連接狀態(tài)通過Android組件的廣播接收器Broadcast Receiver來注冊監(jiān)聽。

        2.2 界面設計

        主界面如圖3所示。藍牙開關、掃描、服務端開啟、消息發(fā)送通過按鈕單擊事件設計實現(xiàn),發(fā)送雙方的消息顯示在界面中部,所有已配對的、掃描到的未配對設備顯示在列表控件ListView中,列表項的長按事件改變設備的配對狀態(tài),短按即單擊事件用于當前設備作為客戶端向列表中設備發(fā)送連接請求。

        圖3 應用主界面

        2.3 通信模塊設計與實現(xiàn)

        藍牙設備兩兩配對以后就可以進行連接通信了。

        Android的藍牙通信系統(tǒng)和Socket套接字密切相關,藍牙端的監(jiān)聽接口和TCP的端口類似,都是使用了Socket和ServerSocket類。在服務端使用Bluetooth ServerSocket類來創(chuàng)建一個開放式監(jiān)聽服務接口,在客戶端使用一個單獨的BluetoothSocket類去初始化一個連接并管理該連接。當一個BluetoothSocket類的連接對象被BluetoothServerSocket類接收,則返回一個新的BluetoothSocket連接并管理該連接。

        連接都是阻塞式的,所以要放在線程里去執(zhí)行。連接成功后,兩臺設備在相同的串行端口規(guī)范RFCOMM通道通過各自的BluetoothSocket對象中的輸入、輸出流進行數(shù)據(jù)傳輸[3]。

        2.3.1 消息發(fā)送與接收控制

        不管是作為服務端還是客戶端進行消息發(fā)送與接收,基本的處理機制是一樣的,文章提供兩個通用的類方法分別完成消息內容的發(fā)送和接收。

        消息的基本處理步驟如下:

        通用消息收發(fā)工具類MsgUtil{

        void sendMsg(String 消息字符串msg){//發(fā)送消息方法頭

        開啟線程Thread{

        獲取輸出流getOutputStream();

        調用輸出流方法write(msg);

        調用輸出流方法flush()提交數(shù)據(jù);

        Android子線程不能直接更新UI,所以返回主線程runOnUiThread(){

        在當前設備界面上顯示發(fā)送的msg;

        }

        }

        }

        void getMsg(){//接收消息方法頭

        開啟線程Thread{

        獲取輸入流getInputStream();

        循環(huán)讀取輸入字節(jié)流并保存于StringBuffer容器對象中;

        Android子線程不能直接更新UI,所以返回主線程runOnUiThread(){

        在當前設備界面上顯示接收到的msg;

        }

        }

        }

        }

        2.3.2 服務端設計

        作為服務端主要是監(jiān)聽客戶端連接請求,連接成功后接收來自客戶端的數(shù)據(jù),需要在線程中進行?;咎幚聿襟E如下:

        線程類{

        構造方法{

        初始化BluetoothAdapter對象;

        獲取BluetoothServerSocket對象;

        }

        run方法{

        監(jiān)聽連接請求accept(),返回BluetoothSocket對象;

        調用MsgUtil類方法getMsg()方法接收客戶端數(shù)據(jù)

        }

        cancel方法{

        圖4 設備A和設備C之間的消息收發(fā)

        資源釋放;

        }

        }

        2.3.3 客戶端設計

        作為客戶端主要是向服務端發(fā)送連接請求,連接成功后接收來自服務端的數(shù)據(jù),需要在線程中進行?;咎幚聿襟E如下:

        線程類{

        構造方法{

        獲取服務端設備BluetoothDevice對象

        獲取BluetoothSocket對象;

        }

        run方法{

        發(fā)送連接請求connect();

        調用MsgUtil類方法getMsg()方法接收服務端數(shù)據(jù)}

        cancel方法{

        資源釋放;

        }

        }

        3 藍牙通信測試

        筆者使用一臺Android 11系統(tǒng)的vivo X60手機作為設備A,一臺HarmonyOS 2.0.0系統(tǒng)的華為平板電腦M6作為設備C進行通信測試。

        兩臺設備都可以具備服務端和客戶端雙重角色。如圖4所示,任何一臺設備都可以作為服務端或者客戶端發(fā)送和接收消息,并能正確地顯示在界面上,從而實現(xiàn)了雙向全雙工數(shù)據(jù)通信,而且即使設備沒有互聯(lián)網連接,也可以進行消息收發(fā)。

        4 結語

        藍牙作為短距離無線傳輸技術之一,有其自己的優(yōu)勢和應用領域,如無需互聯(lián)網連接實現(xiàn)數(shù)據(jù)交換,支持較大的文件傳輸,成本低,安全性高等。Android系統(tǒng)從4.3開始支持低功耗藍牙,有完備的協(xié)議棧和應用程序框架層的SDK包,使得基于Android藍牙技術的開發(fā)越來越便捷。文章就是在此基礎上設計實現(xiàn)了具備一定社交功能的藍牙全雙工通信功能模塊,并盡可能簡化代碼,提高程序復用性,實踐結果表明效果良好,在缺乏網絡等情況下有一定的應用價值。

        猜你喜歡
        全雙工服務端監(jiān)聽
        對抗全雙工主動竊聽的安全高效D2D通信策略
        無線電工程(2024年5期)2024-07-20 00:00:00
        千元監(jiān)聽風格Hi-Fi箱新選擇 Summer audio A-401
        云存儲中基于相似性的客戶-服務端雙端數(shù)據(jù)去重方法
        新時期《移動Web服務端開發(fā)》課程教學改革的研究
        消費導刊(2018年8期)2018-05-25 13:19:48
        RLS算法在同時同頻全雙工系統(tǒng)中的自干擾抑制性能分析
        在Windows Server 2008上創(chuàng)建應用
        網絡監(jiān)聽的防范措施
        電子制作(2017年20期)2017-04-26 06:58:02
        同頻同時全雙工數(shù)字自干擾抵消算法
        5G全雙工技術淺析
        移動通信(2015年15期)2015-12-26 08:52:40
        應召反潛時無人機監(jiān)聽航路的規(guī)劃
        久久一区av蜜桃人妻| 女同三级伦理在线观看| 曰批免费视频播放免费 | 色又黄又爽18禁免费网站现观看| 高h喷水荡肉爽文np肉色学校| 国产精品久久国产精品99| 护士奶头又白又大又好摸视频| 亚洲AV永久无码精品一区二国 | 国产成人影院一区二区| 成人不卡国产福利电影在线看| 特级毛片a级毛片在线播放www| 今井夏帆在线中文字幕| 热re99久久精品国99热| 亚洲av日韩av无码av| а的天堂网最新版在线| 白丝美女扒开内露出内裤视频| 久久伊人最新网址视频| 国内揄拍国内精品少妇| 久久亚洲av成人无码国产| 中国精品久久久久国产| 性感美女脱内裤无遮挡| 久久午夜无码鲁丝片午夜精品| 国产真人无遮挡作爱免费视频| 免费国人成人自拍视频| 人妻少妇精品视频一区二区三区l| 在线观看精品视频网站| 国产一区二区精品在线观看 | 一本久道久久丁香狠狠躁| 亚洲欧美日韩精品久久| 国产精品原创巨作AV女教师| 国产不卡一区在线视频| 最新国产不卡在线视频| 亚洲aⅴ在线无码播放毛片一线天 中国国语毛片免费观看视频 | 日本高清色一区二区三区| 亚洲av无码乱码精品国产| 久久久老熟女一区二区三区| 免费无码国产v片在线观看| yw193.can尤物国产在线网页| 成a人片亚洲日本久久| 一区二区亚洲精品在线| 少妇久久久久久被弄到高潮|