TCP协议用在python和wifi模块之间
2017-07-18 00:24
183 查看
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失败,就会回到上一个定时器。
如果是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 Server端口转发,可用于协议分析
- 如何通俗地解释一下 TCP/UDP 协议和 HTTP、FTP、SMTP 等协议之间的区别?
- OSI七层协议模型、TCP/IP四层模型和五层协议体系结构之间的关系
- 实现多客户端和服务器之间的通讯(TCP协议下,多进程)
- Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
- Python网络编程之TCP与UDP协议套接字用法示例
- PPP、TCP/IP、UDP协议之间的关系
- python+soket实现 TCP 协议的客户/服务端中文(自动回复)聊天程序
- SOCKET,TCP/UDP,HTTP,FTP网络协议之间的关系
- TCP/IP、UDP、HTTP、Socket 各协议之间的联系与区别
- Python TCP传输协议总结
- 10分钟理解TCP/IP各个协议以及协议之间的关系
- Python中TCP协议的理解
- TCP协议----客户端与客户端之间通信
- Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
- SOCKET,TCP/UDP,HTTP,FTP网络协议之间的关系
- 实现客户端和服务器之间的通信(TCP协议、多线程)
- python(12-2 网络编程 udp ,tcp 协议)
- 10分钟理解TCP/IP各个协议以及协议之间的关系
- Java通信编程中调用UDP协议与TCP协议之间的不同