欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

TCP協(xié)議用在python和wifi模塊之間詳解

 更新時間:2023年06月03日 15:20:22   作者:John_Y97  
這篇文章主要介紹了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)文章

最新評論