TCP协议用在python和wifi模块之间详解

作者:John_Y97 时间:2021-02-04 05:43:08 

TCP协议用在python和wifi模块之间

python建立TCP连接需要用到socket协议 

如果是TCP Server,建立TCP连接的步骤是:

  • 1.创建socket套接字

  • 2.绑定(bind())本地的ip地址和端口号

  • 3.监听端口(listen),如果有socket连接,便接收(accept)。  

如果是TCP Client,建立TCP连接的步骤是:

  • 1.创建socket套接字

  • 2.连接(connect)远程主机的ip地址和端口号。  

我的计算机最初使用的是TCP Server模式,让wifi模块作为client来连接计算机,但是这种模式缺陷很多,比如,连接的主动性在wifi模块上,wifi模块是否连接还需要把握时机,如果wifi模块先联网,而服务器后打开,则两者无法建立TCP连接。

而且计算机作为服务器,那么对于wifi模块的SDK来说,需要连接的服务器地址就是固定的,也就是说,如果换一台电脑运行服务器,那么wifi模块就需要重新烧写一次ip地址,十分不便,也不人性化。  

因此,后来我将wifi模块的SDK和计算机python软件重写,将两者地位交换,wifi模块作为服务器,计算机作为客户端去连接wifi模块,这样,连接的主动权就回到了计算机手里,这样,wifi模块一直处在监听模式,只要计算机去运行这个软件,并且与wifi模块处在一个局域网下,那么就能够连接上wifi模块,并且向wifi模块发送数据。

wifi模块SDK的编写

wifi模块采用定时器的机制,每隔一段时间会调用回调函数。如上面检查wifi状态部分第三句代码,那么wifi模块如果状态是良好的,则进入下一个函数,如果wifi信号不好,它就会一直检查wifi状态,不会进入到连接wifi的模块。  

同理,连接wifi部分也是一样,如果wifi连接失败,也不会进入下一个部分,即建立TCP Server部分,但是由于os_timer_arm函数中的第三个参数为0,它不会一直阻塞在连接wifi的部分,它会回到上一个检查wifi状态的定时器模块上。  

同理,如果建立TCP失败,就会回到上一个定时器。

python的tcp协议交互

服务端:

TCP协议用在python和wifi模块之间详解

客户端:

TCP协议用在python和wifi模块之间详解

来源:https://blog.csdn.net/John_Y97/article/details/75269782

标签:TCP协议,python,wifi模块
0
投稿

猜你喜欢

  • Python实现栈的方法详解【基于数组和单链表两种方法】

    2022-06-05 19:03:47
  • Python可视化tkinter详解

    2022-12-31 06:09:19
  • vue项目中在可编辑div光标位置插入内容的实现代码

    2024-05-28 15:55:45
  • Python字符串大小写转换拼接删除空白

    2023-01-24 13:08:01
  • Go语言使用Etcd实现分布式锁

    2024-04-23 09:37:33
  • 基于Jquery+Ajax+Json的高效分页实现代码

    2024-05-21 10:12:19
  • python爬虫开发之Request模块从安装到详细使用方法与实例全解

    2023-10-30 18:08:50
  • Python并发:多线程与多进程的详解

    2021-08-22 20:21:33
  • Python如何通过ip2region解析IP获得地域信息

    2021-08-02 12:59:04
  • Python虚拟环境virtualenv的安装与使用详解

    2022-02-22 02:19:46
  • css学习笔记:div在IE6下无法遮盖select

    2009-04-30 13:21:00
  • python web.py启动https端口的方式

    2021-10-20 11:33:44
  • python 遍历可迭代对象的实现方法

    2021-03-02 07:13:07
  • Python Opencv中获取卷积核的实现代码

    2021-04-07 07:11:50
  • oracle合并列的函数wm_concat的使用详解

    2024-01-25 20:54:19
  • Python测试Kafka集群(pykafka)实例

    2023-05-05 20:57:56
  • 一文学会VSCode使用python

    2022-07-26 16:06:46
  • 如何在Frontpage中定义CSS样式

    2008-08-02 12:32:00
  • Django框架用户注销功能实现方法分析

    2021-07-22 17:58:08
  • Python中生成器和迭代器的区别详解

    2022-12-04 02:32:08
  • asp之家 网络编程 m.aspxhome.com