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

 更新时间:2023年06月03日 15:20:22   作者:John_Y97  
这篇文章主要介绍了TCP协议用在python和wifi模块之间详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

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协议交互

服务端:

客户端:

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 关于Python Tkinter 复选框 ->Checkbutton

    关于Python Tkinter 复选框 ->Checkbutton

    这篇文章主要介绍了关于Python Tkinter复选框Checkbutton,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • python使用技巧-文件读写

    python使用技巧-文件读写

    这篇文章主要介绍了python使用技巧-文件读写,Python提供了非常方便的文件读写功能,其中open是读写文件的第一步,通过open读写文件的方式和把大象装冰箱是一样的,下面我们就来具体介绍该内容,需要的小伙伴可以参考一下
    2022-02-02
  • 总结Python中逻辑运算符的使用

    总结Python中逻辑运算符的使用

    这篇文章主要介绍了总结Python中逻辑运算符的使用,是Python学习当中的基础知识,需要的朋友可以参考下
    2015-05-05
  • 深入理解Django的信号机制

    深入理解Django的信号机制

    本文主要介绍了深入理解Django的信号机制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • Python Opencv实现最强美颜滤镜效果

    Python Opencv实现最强美颜滤镜效果

    这篇文章主要介绍了如何利用Python OpenCV制作一个强大的美颜滤镜效果,文中的示例代码讲解详细,感兴趣的小伙伴可以学习一下
    2022-03-03
  • python集成环境一键部署全过程

    python集成环境一键部署全过程

    这篇文章主要介绍了python集成环境一键部署全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-08-08
  • pandas如何读取含有中文的excel

    pandas如何读取含有中文的excel

    这篇文章主要介绍了pandas如何读取含有中文的excel问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • python中@staticmethod方法的使用

    python中@staticmethod方法的使用

    这篇文章主要介绍了python中@staticmethod方法的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Python使用OpenCV捕获摄像头视频流并在窗口中显示

    Python使用OpenCV捕获摄像头视频流并在窗口中显示

    这篇文章主要为大家详细介绍了Python如何使用OpenCV捕获摄像头视频流并在窗口中显示,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2025-08-08
  • pycharm安装AI编程工具Fitten Code全过程

    pycharm安装AI编程工具Fitten Code全过程

    FittenCode是一款免费的AI编程助手,支持代码生成、调试、对话及语言转换,可在PyCharm中安装使用,通过插件功能提升开发效率,实现代码补全、语言转化等操作,适合解决编程问题和优化开发流程
    2025-09-09

最新评论