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

 

  1.   商标
  2. 1 引言
    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. 2 应用示例
  4. 3 应用设置
    1. 3.1 硬件设置
    2. 3.2 软件工具
  5. 4 下载并导入以太网示例
  6. 5 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. 6 Enet_tcpecho_server_static_ip_lwip 示例概述
    1. 6.1 如何将 lwIP 配置为静态地址
    2. 6.2 运行 enet_tcpecho_server_static_ip_lwip 示例
  8. 7 Enet_udpecho_server_lwip 示例概述
    1. 7.1 运行 enet_udpecho_server_lwip 示例
  9. 8 Enet_dns_lwip 示例概述
    1. 8.1 如何将 lwIP 配置为 DNS
    2. 8.2 如何在 Wireshark 上查看 DNS 流量
    3. 8.3 运行 enet_dns_lwip 示例
  10. 9 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 秒。