TCP協(xié)議用在python和wifi模塊之間詳解
TCP協(xié)議用在python和wifi模塊之間
python建立TCP連接需要用到socket協(xié)議
如果是TCP Server,建立TCP連接的步驟是:
- 1.創(chuàng)建socket套接字
- 2.綁定(bind())本地的ip地址和端口號
- 3.監(jiān)聽端口(listen),如果有socket連接,便接收(accept)。
如果是TCP Client,建立TCP連接的步驟是:
- 1.創(chuàng)建socket套接字
- 2.連接(connect)遠(yuǎn)程主機(jī)的ip地址和端口號。
我的計算機(jī)最初使用的是TCP Server模式,讓wifi模塊作為client來連接計算機(jī),但是這種模式缺陷很多,比如,連接的主動性在wifi模塊上,wifi模塊是否連接還需要把握時機(jī),如果wifi模塊先聯(lián)網(wǎng),而服務(wù)器后打開,則兩者無法建立TCP連接。
而且計算機(jī)作為服務(wù)器,那么對于wifi模塊的SDK來說,需要連接的服務(wù)器地址就是固定的,也就是說,如果換一臺電腦運(yùn)行服務(wù)器,那么wifi模塊就需要重新燒寫一次ip地址,十分不便,也不人性化。
因此,后來我將wifi模塊的SDK和計算機(jī)python軟件重寫,將兩者地位交換,wifi模塊作為服務(wù)器,計算機(jī)作為客戶端去連接wifi模塊,這樣,連接的主動權(quán)就回到了計算機(jī)手里,這樣,wifi模塊一直處在監(jiān)聽模式,只要計算機(jī)去運(yùn)行這個軟件,并且與wifi模塊處在一個局域網(wǎng)下,那么就能夠連接上wifi模塊,并且向wifi模塊發(fā)送數(shù)據(jù)。
wifi模塊SDK的編寫
wifi模塊采用定時器的機(jī)制,每隔一段時間會調(diào)用回調(diào)函數(shù)。如上面檢查wifi狀態(tài)部分第三句代碼,那么wifi模塊如果狀態(tài)是良好的,則進(jìn)入下一個函數(shù),如果wifi信號不好,它就會一直檢查wifi狀態(tài),不會進(jìn)入到連接wifi的模塊。
同理,連接wifi部分也是一樣,如果wifi連接失敗,也不會進(jìn)入下一個部分,即建立TCP Server部分,但是由于os_timer_arm函數(shù)中的第三個參數(shù)為0,它不會一直阻塞在連接wifi的部分,它會回到上一個檢查wifi狀態(tài)的定時器模塊上。
同理,如果建立TCP失敗,就會回到上一個定時器。
python的tcp協(xié)議交互
服務(wù)端:
客戶端:
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python使用urllib模塊對URL網(wǎng)址中的中文編碼與解碼實例詳解
這篇文章主要介紹了Python使用urllib模塊對URL網(wǎng)址中的中文編碼與解碼(Python使用urllib模塊對URL編碼與解碼)實例詳解,需要的朋友可以參考下2020-02-02Python將list中的string批量轉(zhuǎn)化成int/float的方法
今天小編就為大家分享一篇Python將list中的string批量轉(zhuǎn)化成int/float的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06關(guān)于Python ImportError: No module named&nb
最近多個小伙伴兒問“ImportError: No module named xxx“,應(yīng)該怎么樣解決,下面小編給大家?guī)砹岁P(guān)于Python ImportError: No module named 通用解決方法,感興趣的朋友一起看看吧2022-11-11pytorch 實現(xiàn)在預(yù)訓(xùn)練模型的 input上增減通道
今天小編就為大家分享一篇pytorch 實現(xiàn)在預(yù)訓(xùn)練模型的 input上增減通道,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01python 解決數(shù)據(jù)庫寫入時float自動變?yōu)檎麛?shù)的問題
這篇文章主要介紹了python 解決數(shù)據(jù)庫寫入時float自動變?yōu)檎麛?shù)的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07Python調(diào)用騰訊云短信服務(wù)發(fā)送手機(jī)短信
這篇文章主要為大家介紹了Python調(diào)用騰訊云短信服務(wù)發(fā)送手機(jī)短信,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05