|
xt-sdk 文档 v1.0.3
xt-sdk 嵌入式 SDK API 参考
|
| 平台 | 目标 |
|---|---|
| lm620 | r4f4 |
| windows | simulator |
演示如何使用 xt_socket(跨平台 Socket) 组件编写跨平台网络应用程序,覆盖 15 个功能场景。
初始化后依次运行以下演示:
1. TCP 客户端/服务器 — 创建 TCP 服务器,客户端连接后发送 Hello from TCP! ,服务器接收并 echo 回客户端,客户端 shutdown(SHUT_WR) 关闭写半部。
2. UDP 通信 — 创建两个 UDP 套接字,A 向 B 发送 UDP hello from A! ,B 接收后回复 Reply from B! ,A 接收回复。
3. select 多路复用 — select() 检测服务器套接字可读(有连接到达),accept 后检测客户端套接字可写。
4. 错误处理 — 测试非阻塞 connect 到不可达端口,验证 xt_socket_errno() / xt_socket_strerror() 和 inet_pton / inet_ntop 地址转换。
5. getsockopt 查询 — 验证 TCP/UDP 套接字的 SO_TYPE 、 SO_RCVBUF 、 SO_SNDBUF 选项。
6. getpeername — 验证 getpeername() 在 accept 端和 connect 端均能正确返回对端端口。
7. 非阻塞模式 — 验证 xt_socket_set_nonblock() 可在阻塞和非阻塞模式之间切换。
8. read/write — 验证 POSIX 风格的 xt_socket_read() / xt_socket_write() 在 TCP 套接字上正常收发。
9. getaddrinfo — 验证地址解析成功( 127.0.0.1:80 )和非法域名正确失败。
10. 套接字超时 — 设置 SO_RCVTIMEO 为 100ms 并验证读取一致。
11. TCP Keepalive — 启用 SO_KEEPALIVE 并设置 TCP_KEEPIDLE=10 / TCP_KEEPINTVL=5 / TCP_KEEPCNT=3 。
12. SO_LINGER — 设置 SO_LINGER(on=1, linger=0) 并验证读取一致。
13. SO_BROADCAST — 在 UDP 套接字上启用广播选项。
14. IP_TTL — 设置 IP_TTL=64 并验证(不支持时输出 SKIP )。
15. 非阻塞 connect + 多连接并发 — 同时发起 3 个非阻塞连接,通过 select 检测完成,通过 SO_ERROR 确认结果,服务器 accept 全部 3 个连接。
最后输出: