【EG800Z-CN】TCP客户端示例
thumbnail

【EG800Z-CN】TCP客户端示例

本案例使用移远通信EG800Z-CN开发板和UniRTOS,通过调用UniRTOS中的Socket相关功能函数,让开发板成为TCP客户端,远程连接TCP服务器进行数据交互。

  • TCP Client

项目概述

本案例使用移远通信EG800Z-CN开发板和UniRTOS,通过调用UniRTOS中的Socket相关功能函数,让开发板成为TCP客户端,远程连接TCP服务器进行数据交互。

功能特性

阻塞式TCP客户端
  • 端到端连接自动化:集成“蜂窝网络附着 → PDP上下文激活 → DNS域名解析 → TCP连接建立”全流程,可一站式实现从设备上电到与远程服务器建立可靠通信链路全任务。
  • 全面可靠的数据会话管理:在成功建立TCP连接后,执行预设次数的“发送请求-接收响应”数据交互循环,并内置对send/read操作结果的严格校验,确保会话的可靠性与完整性。

开发准备

硬件要求

  • 有效SIM卡。

软件要求

快速上手

下载项目

示例代码位于UniRTOS官方创客仓库,点此访问下载

添加项目到UniRTOS SDK

SDK新增Demo,固件编译和烧录请参考UniRTOS板块的快速启动

硬件连接

1. 按卡槽丝印提示方向拨开卡槽盖,将SIM卡放入,再扣好盖子。

2.使用数据线连接开发板和电脑。

软件部署

在ConnectLab平台新建服务器配置,然后将真实的服务器地址和端口填写到项目代码中。

日志展示

代码概览

示例流程图

主要功能接口

unir_test_demo_init
功能:TCP阻塞客户端演示的入口与初始化函数。负责创建独立任务,让TCP通信逻辑在后台运行,不阻塞主程序。
关键操作
  • 任务创建:调用qosa_task_create创建名为app_block的任务,执行qcm_socket_app_block_process
  • 任务配置:栈大小4 KB,普通优先级,保证TCP流程稳定运行。
  • 重要性:用户需在应用初始化时调用,用于启动整个TCP客户端通信功能。
qcm_socket_app_block_process
功能:TCP阻塞客户端主处理函数。完成联网、DNS解析、Socket创建、连接服务器、收发数据全套流程。
关键操作
  • 等待网络就绪:延时10秒等待模组注网。
  • 激活PDP联网:调用qcm_socket_app_datacall_active确保数据链路可用。
  • DNS 解析:通过qosa_dns_syn_getaddrinfo获取服务器IP。
  • 创建 Socket:qcm_socket_create创建阻塞式 TCP Socket
  • 连接服务器:qcm_socket_connect连接目标IP与端口。
  • 循环收发:最多发送20次数据,等待服务器回传(阻塞等待)。
  • 关闭连接:通信完成后调用qcm_socket_close释放资源。
  • 重要性:完整封装TCP客户端标准流程,是物联网设备TCP通信的核心参考。
qcm_socket_app_datacall_active
功能:PDP数据链路激活函数。检查并激活蜂窝网络连接,为TCP通信提供网络基础。
关键操作
  • 创建DataCall对象:qosa_datacall_conn_new
  • 查询IP信息:判断PDP是否已激活。
  • 未激活则启动拨号:qosa_datacall_start激活PDN连接。
  • 重要性:TCP通信必须依赖可用网络,此函数确保网络就绪。

沟通无界,服务无限

了解更多关于移远公司、产品和技术支持的信息。