README
sidebar_position: 4
UOTA TCP客户端示例
本目录包含了UOTA TCP协议的C和C++客户端实现示例,用于演示如何接入UOTA TCP服务。
文件说明
uota_tcp_client.c- C语言客户端实现UotaTcpClient.cpp- C++客户端实现Makefile- 编译配置文件README.md- 使用说明文档
依赖库
Ubuntu/Debian系统
sudo apt-get install libssl-dev libjson-c-dev libjsoncpp-dev
CentOS/RHEL系统
sudo yum install openssl-devel json-c-devel jsoncpp-devel
macOS系统
brew install openssl json-c jsoncpp
编译方法
使用Makefile (推荐)
# 安装依赖库
make install
# 编译所有客户端
make all
# 或者单独编译
make c # 编译C语言客户端
make cpp # 编译C++客户端
手动编译
# C语言客户端
gcc -o uota_client_c uota_tcp_client.c -lssl -lcrypto -ljson-c
# C++客户端
g++ -std=c++11 -o uota_client_cpp UotaTcpClient.cpp -lssl -lcrypto -ljsoncpp
运行方法
使用默认服务器地址 (192.168.1.87:8520)
# C语言客户端
./uota_client_c
# C++客户端
./uota_client_cpp
指定服务器地址
# C语言客户端
./uota_client_c <服务器IP> <端口>
./uota_client_c 192.168.1.87 8520
# C++客户端
./uota_client_cpp <服务器IP> <端口>
./uota_client_cpp 192.168.1.87 8520
使用Makefile运行
# 运行C语言客户端
make run-c
# 运行C++客户端
make run-cpp
# 测试指定服务器
SERVER_IP=192.168.1.87 SERVER_PORT=8520 make test-c
SERVER_IP=192.168.1.87 SERVER_PORT=8520 make test-cpp
运行示例
成功运行输出
UOTA TCP Client (C version)
Connecting to 192.168.1.87:8520
Connected to server 192.168.1.87:8520
Waiting for timestamp response...
Received: {"type":"TIMESTAMP_RESPONSE","data":"1761104391386"}
Parsed timestamp: 1761104391386
Sending UOTA info request...
UOTA request sent successfully
Waiting for UOTA response...
Received response: {"type":"UOTA_INFO_RESPONSE","data":"brakWyt/yYe/pxjxgWRXh+..."}
Response type: UOTA_INFO_RESPONSE
Decrypted UOTA info: {"url":"http://192.168.1.87:8742/app-api/infra/file/download/redirect/1757560816080/app-netservice-3.4.9-allwinner-20250911-debug.apk","size":4747480,"packageName":"com.android.netservice","versionCode":49,"md5":"c7d614b68b94ef0ca470fb30fc3a79ec"}
Download URL: http://192.168.1.87:8742/app-api/infra/file/download/redirect/1757560816080/app-netservice-3.4.9-allwinner-20250911-debug.apk
File size: 4747480 bytes
MD5: c7d614b68b94ef0ca470fb30fc3a79ec
Version code: 49
Package name: com.android.netservice
Connection closed
协议说明
通信流程
- 客户端连接TCP服务器
- 服务端发送时间戳响应
- 客户端发送加密的UOTA信息请求
- 服务端返回加密的UOTA信息响应
- 客户端解密并解析响应数据