ZHCAB54 March   2021 TM4C1292NCPDT , TM4C1292NCZAD , TM4C1294KCPDT , TM4C1294NCPDT , TM4C1294NCZAD , TM4C1299KCZAD , TM4C1299NCZAD , TM4C129DNCPDT , TM4C129DNCZAD , TM4C129EKCPDT , TM4C129ENCPDT , TM4C129ENCZAD , TM4C129LNCZAD , TM4C129XKCZAD , TM4C129XNCZAD

 

  1.   商标
  2. 引言
    1. 1.1 许可
    2. 1.2 IwIP 版本
    3. 1.3 lwIP 定制
    4. 1.4 IwIP API
      1. 1.4.1 TCP RAW API
      2. 1.4.2 UDP RAW API
    5. 1.5 lwIP 开发主页和支持
  3. 应用示例
  4. 应用设置
    1. 3.1 硬件设置
    2. 3.2 软件工具
  5. 下载并导入以太网示例
  6. Enet_tcpecho_server_lwip 示例概述
    1. 5.1 构建和刷写程序
    2. 5.2 对 MAC 地址进行检查和编程
      1. 5.2.1 使用 LM Flash Programmer
      2. 5.2.2 使用 CCS
      3. 5.2.3 使用 UniFlash
    3. 5.3 配置终端窗口
    4. 5.4 运行 enet_tcpecho_server_lwip 示例
  7. Enet_tcpecho_server_static_ip_lwip 示例概述
    1. 6.1 如何将 lwIP 配置为静态地址
    2. 6.2 运行 enet_tcpecho_server_static_ip_lwip 示例
  8. Enet_udpecho_server_lwip 示例概述
    1. 7.1 运行 enet_udpecho_server_lwip 示例
  9. Enet_dns_lwip 示例概述
    1. 8.1 如何将 lwIP 配置为 DNS
    2. 8.2 如何在 Wireshark 上查看 DNS 流量
    3. 8.3 运行 enet_dns_lwip 示例
  10. Enet_sntp_lwip 示例概述
    1. 9.1 运行 enet_sntp_lwip 示例
  11. 10Enet_tcpecho_client_lwip 示例概述
    1. 10.1 配置服务器 IP 地址
    2. 10.2 配置 SocketTest 服务器并运行 enet_tcpecho_client_lwip 示例
    3. 10.3 enet_tcpecho_client_lwip 示例的 Wireshark 捕获
  12. 11Enet_adcsensor_client_lwip 示例概述
    1. 11.1 运行 adcsensor_client_lwip 示例
  13. 12Enet_udpecho_client_lwip 示例概述
    1. 12.1 运行 enet_udpecho_client_lwip 示例
  14. 13参考文献

运行 enet_tcpecho_server_lwip 示例

使用以太网电缆将 EK-TM4C1294XL LaunchPad 连接到以太网交换机或路由器,如图 5-6 所示。运行示例。打开“Terminal”窗口后,您应该会看到显示的 IP 地址(箭头 1 所指),并且服务器已准备就绪,如图 5-6 所示。记录此 IP 地址,因为客户端上需要此信息。最初,服务器将处于侦听状态,等待客户端与其连接因此,若要继续运行示例的其余部分,需要设置远程客户端。

GUID-20210301-CA0I-JGXT-3KLT-M5BMHDD3RDNC-low.png图 5-6 Enet_tcpecho_server_lwip 输出

使用的 SocketTest 工具将充当在 PC 上运行的客户端。确保 PC 连接到与 EK-TM4C1294XL 具有相同子网掩码的网络。

按照图 5-7 中所示的步骤设置客户端:

  1. 打开 SocketTest 并输入服务器 IP 地址以及端口号 23。端口 23 是 TCP 和 UDP 协议中的默认 Telnet 端口号。最后,按“Connect”(连接)按钮。与服务器的连接很快就会建立,然后您便可以与服务器进行对话了。
  2. 转到“Message”(消息)字段并输入一些消息,然后点击“Send”(发送)按钮。
  3. 您输入的消息将显示在对话字段中。当服务器收到消息时,它将反转消息的大小写,然后将消息回显给客户端。服务器还会向客户端回复它收到的字符数。
GUID-20210301-CA0I-PDBX-VLBL-0GLMCPFQKVPK-low.png图 5-7 Enet_tcpecho_server_lwip 的 SocketTest 客户端配置

检查客户端发送给服务器的第二条消息“HOW are YOU today?”。如果您选择手动计数,可以计算出总长度为 20 个字节,包括两个 \n\r 转义字符。\n 是换行符,\r 是 ASCII 表中的回车符。

服务器回复了一条消息,称“Server received 20 bytes.Converting character case. how ARE you TODAY?”。首先,服务器收到的字符数确实是 20。服务器发回的整个消息的总长度为 73 个字节。

GUID-20210301-CA0I-D8LH-1QFN-WLHNPW8GJBS7-low.png图 5-8 Enet_tcpecho_server_lwip 的客户端到服务器 Wireshark 捕获

图 5-9 显示从客户端(IP 地址 192.168.254.75)到服务器(IP 地址 192.168.254.82)的相应消息。

当服务器发送消息时,它会等待客户端确认数据已成功接收。在 tcp_sent() 调用的回调函数中,服务器只在“Terminal”窗口上显示客户端确认的字节数,如图 5-9 所示。

GUID-20210301-CA0I-KVVX-QXF8-P8D5KT10HDHH-low.png图 5-9 Enet_tcpecho_server_lwip 中的客户端收到数据确认

另外,检查图 5-10 中服务器响应的 Wireshark 捕获。服务器(IP 地址 192.168.254.82)向客户端 (192.168.254.75) 发送 73 个字符的消息,客户端确认收到数据。

GUID-20210301-CA0I-LVM9-8PNB-C91WD4ZFGDTJ-low.png图 5-10 Enet_tcpecho_server_lwip 的服务器到客户端 Wireshark 捕获

假设您让连接空闲,则服务器应用利用 tcp_poll() 每 5 秒定时触发回调函数,以显示服务器空闲了多长时间。在实际应用中,可以在关闭连接之前对内部空闲连接进行编程以节省电量。请参阅图 5-6 中的框 2,其中报告了如下内容:服务器自上个事务后已空闲 100 秒。