上贴演示了一个W5500的TCP客户端模式。本帖将继续讲解W5500的TCP服务器模式。
TCP 是以连接为基础的通信方式,它必须首先建立连接,然后利用连接的 IP 地址和端口号进行数据传输。TCP 有两种连接方式:一种是服务器模式(被动开启),即等待接收连接请求以建立连接;另一种是客户端模式(主动开启),即发送连接请求到服务器。
W5500的服务器模式工作流程如下(可参考W5100):
如果试用监听工具的话,便可以看到客户端与服务器之间的三次握手了。
下面直接针对程序讲解吧:
首先自然是配置W5500的自身参数:本地IP,子网掩码、MAC地址等。
配置本地IP为:192.168.0.111
子网掩码:255.255.255.0
默认网关:192.168.0.1
然后再对W5500的工作模式进行配置:
W5500有8个SOCKET、这里,我们将端口0配置为服务器模式。
首先自然是如上图所示开启监听了:直接调用W5500驱动程序内的listen(0)即可。
在获取到端口0与客户端的握手成功后,即已成功建立连接,便对其状态再次校验,若异常,则重新设置工作模式。若正常,即可进行数据交互了。
简化的TCP 客户端与服务器交互流程如下:
最终程序演示如图所示:电脑上开启网络调试助手,往W5500请求连接,成功后发送数据,W5500数据接收成功后,通过串口发出。
结合上一贴所示的TCP客户端模式、我们再次将端口1配置为客户端模式,端口0配置为服务器模式。在PC上开始两个网络调试助手分别连接。如下所示: