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