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

 

  1.   商标
  2. 引言
    1. 1.1 TI-RTOS 下载
    2. 1.2 许可
    3. 1.3 XDCtools
    4. 1.4 版本
    5. 1.5 配置 NDK 模块
    6. 1.6 基于套接字的 API
      1. 1.6.1 BSD 套接字 API
  3. 应用示例
  4. 应用设置
    1. 3.1 硬件设置
    2. 3.2 软件工具
  5. 下载并导入以太网示例
  6. 如何为 TI-RTOS NDK 创建以太网应用
  7. Enet_tcpecho_server_tirtos 示例概述
    1. 6.1 构建和刷写程序
    2. 6.2 对 MAC 地址进行检查和编程
      1. 6.2.1 使用 LM Flash Programmer(闪存编程器)
      2. 6.2.2 使用 CCS
      3. 6.2.3 使用 UniFlash
    3. 6.3 运行 enet_tcpecho_server_tirtos 示例
  8. Enet_udpecho_server_tirtos 示例概述
    1. 7.1 运行 enet_udpecho_server_tirtos 示例
  9. Enet_httpServer_tirtos 示例概述
    1. 8.1 为 HTTP 应用配置 NDK
    2. 8.2 嵌入式文件系统 (EFS) 操作
    3. 8.3 添加 HTTP 服务器内容
    4. 8.4 向 EFS 声明 HTML 文件
    5. 8.5 编写 CGI 函数
    6. 8.6 运行 enet_httpServer_tirtos 示例
  10. Enet_dns_tirtos 示例概述
    1. 9.1 如何为 DNS 配置 NDK
    2. 9.2 如何在 Wireshark 上查看 DNS 流量
    3. 9.3 运行 enet_dns_tirtos 示例
  11. 10Enet_sntp_tirtos 示例概述
    1. 10.1 运行 enet_dns_tirtos 示例
  12. 11Enet_tcpecho_client_tirtos 示例概述
    1. 11.1 配置服务器 IP 地址
    2. 11.2 配置 SocketTest 服务器
    3. 11.3 运行 enet_tcpecho_client_tirtos 示例
  13. 12Enet_udpecho_client_tirtos 示例概述
    1. 12.1 运行 enet_udpecho_client_tirtos 示例
  14. 13Enet_httpget_tirtos 示例概述
    1. 13.1 如何为 HTTP GET 配置 NDK 示例
    2. 13.2 运行 enet_httpget_tirtos 示例
  15. 14参考文献

BSD 套接字 API

表 1-1 列出了典型的 BSD 套接字 API。图 1-3 显示使用 BSD 套接字 API 的 TCP 客户端-服务器通信的简化流程图。图 1-4 显示了 UDP 通信的 API 使用情况。

表 1-1 BSD 套接字 API
功能类别 API 说明
套接字连接 socket 创建某个类型的新套接字,由整数标识,并为其分配系统资源。
bind 通常用于服务器端,将套接字与套接字地址结构(即指定的本地 IP 地址和端口号)关联起来。
listen 用于服务器端,使绑定的 TCP 套接字进入监听状态。
accept 用于服务器端。它接受接收到的从远程客户端创建新 TCP 连接的传入尝试,并创建与此连接的套接字地址对相关联的新套接字。
connect 用于客户端,为套接字分配空闲的本地端口号。对于 TCP 套接字,它会导致尝试建立新的 TCP 连接。
接收数据 recv 用于接收数据。通常仅用于已连接的套接字。
recvfrom 用于接收数据。可能用于在套接字上接收数据,无论它是否面向连接。
发送数据 send 用于发送数据。通常用于 TCP SOCK_STREAM 已连接的套接字。
sendto 用于发送数据。通常用于 UDP SOCK_DGRAM 未连接的数据报套接字。
I/O 多路复用 poll 用于检查一组套接字中某个套接字的状态。可以测试该集合以查看是否可以写入、读取任何套接字或是否发生错误。
select 用于挂起,等待提供的套接字列表中一个或多个套接字准备好读取、准备好写入,或者是因为存在错误。
关闭连接 close 关闭 TCP 连接。
套接字选项 setsocketopt 用于为指定的套接字设置特定的套接字选项。
getsockopt 用于检索指定套接字的特定套接字选项的当前值。
GUID-20210329-CA0I-1S5X-LTJR-XRBRGSB5M2FW-low.jpg图 1-3 使用 BSD 套接字 API 的 TCP 客户端服务器通信
GUID-20210329-CA0I-RHK7-B9QH-HKWFNKKNKWHH-low.jpg图 1-4 使用 BSD 套接字 API 的 UDP 客户端服务器通信