暂无商品咨询信息 [发表商品咨询]
本书精心设计,融合了网络协议理论的深度解析、HarmonyOS API的详尽探讨及丰富的实际开发案例,旨在全面剖析HarmonyOS网络编程的核心要点与挑战。全书共10章,全面解析HarmonyOS平台下的网络编程技术,从底层的TCP、UDP、HTTP到高级特性的RCP模块和ArkWeb组件,内容循序渐进、深入浅出。每章配有丰富的示例代码与详尽的开发指南,帮助读者快速掌握网络应用的设计与实现,构建高效稳定的网络应用。本书面向有一定ArkTS语言基础的开发者,以及对HarmonyOS网络编程感兴趣的开发者,还可作为高等院校计算机相关课程的教材或参考书。
张磊,华为开发者专家(HDE)、华为云开发者专家(HCDE)、官方认证首批鸿蒙极客,仓颉语言社区卓越贡献者,著有《仓颉语言网络编程》《仓颉语言元编程》《仓颉语言实战》《鲲鹏架构入门与实战》《鲲鹏开发套件应用快速入门》等图书,研究方向聚焦在基础软件领域的自主可控和国产替代。
第 1章 TCP通信(
38min)·································································································1
1.1 TCP简介·················································································································· 1
1.1.1 报文格式 ······································································································ 1
1.1.2 三次握手 ······································································································ 3
1.1.3 滑动窗口机制 ······························································································· 4
1.2 TCP API····················································································································7
1.2.1 NetAddress ··································································································· 7
1.2.2 TCPConnectOptions ····················································································· 7
1.2.3 TCPSendOptions··························································································· 8
1.2.4 SocketRemoteInfo························································································· 8
1.2.5 SocketMessageInfo ······················································································· 8
1.2.6 SocketStateBase ···························································································· 8
1.2.7 TCPSocket ···································································································· 9
1.2.8 TCPSocketServer ························································································ 10
1.2.9 TCPSocketConnection ················································································ 11
1.3 TCP通信示例 ········································································································ 12
1.3.1 TCP客户端 ································································································ 12
1.3.2 TCP客户端连接超时················································································· 17
1.3.3 邮件发送客户端 ························································································· 23
1.3.4 长时任务处理模块 ····················································································· 33
1.3.5 TCP回声服务器 ························································································ 35
第 2章通信粘包 (
26min)································································································ 40
2.1粘包的表现 ············································································································ 40
2.2 TCP粘包原因分析 ································································································ 44
2.3 TCP粘包问题解决方案 ························································································· 46
2.3.1 指定数据包结束标志 ················································································· 46
2.3.2 固定包头 +可变包体结构··········································································· 52
第 3章 UDP通信(
16min)······························································································· 59
3.1 UDP简介 ··············································································································· 59
3.2 UDP API ················································································································· 60
3.2.1 UDPSendOptions ························································································ 60
3.2.2 UDPSocket·································································································· 60
3.3 UDP通信示例 ······································································································· 61
3.3.1 UDP客户端 ······························································································· 61
3.3.2 UDP回声服务器························································································ 66
第 4章安全通信 (
36min)································································································ 71
4.1安全通信的演化 ···································································································· 71
4.1.1 明文通信 ···································································································· 71
4.1.2 对称加密通信 ····························································································· 72
4.1.3 非对称加密通信 ························································································· 73
4.1.4 基于数字证书的非对称加密通信 ····························································· 75
4.2 TLS协议简介 ········································································································ 76
4.3 TLS安全通信 API ································································································· 77
4.3.1 Protocol······································································································· 77
4.3.2 TLSSecureOptions ······················································································ 77
4.3.3 TLSConnectOptions···················································································· 78
4.3.4 TLSSocket ·································································································· 78
4.3.5 TLSSocketServer ························································································ 80
4.3.6 TLSSocketConnection ················································································ 81
4.4签发自签名数字证书 ····························································································· 82
4.4.1 签发简介 ···································································································· 82
4.4.2 签发步骤 ···································································································· 82
4.5数字证书相关 API ································································································· 89
4.5.1 EncodingFormat·························································································· 89
4.5.2 EncodingBlob ····························································································· 90
4.5.3 CertItemType ······························································································ 90
4.5.4 X500DistinguishedName ············································································ 90
4.5.5 X509Cert····································································································· 90
4.6安全通信示例 ········································································································ 92
4.6.1 文件处理模块 ····························································································· 92
4.6.2 数字证书验签 ····························································································· 96
目录 VII
4.6.3 TLS回声服务器······················································································· 103
4.6.4 TLS客户端 ······························································································ 109
第 5章 HTTP数据请求(
43min) ·················································································· 118
5.1 HTTP简介 ··········································································································· 118
5.1.1 HTTP抽象消息结构················································································ 118
5.1.2 HTTP/1.1的消息结构 ·············································································· 119
5.1.3 请求方法 ·································································································· 121
5.1.4 状态码 ······································································································ 122
5.1.5 首部字段 ·································································································· 125
5.2最简单的 HTTP服务器······················································································· 127
5.3 HTTP数据请求 API ···························································································· 133
5.3.1 RequestMethod ························································································· 133
5.3.2 ResponseCode··························································································· 133
5.3.3 HttpProtocol······························································································ 134
5.3.4 HttpDataType···························································································· 135
5.3.5 MultiFormData ························································································· 135
5.3.6 CertType ··································································································· 135
5.3.7 ClientCert·································································································· 136
5.3.8 HttpRequestOptions ·················································································· 136
5.3.9 HttpResponse ···························································································· 138
5.3.10 http.createHttp························································································· 139
5.3.11 HttpRequest····························································································· 139
5.4 HTTP数据请求示例···························································································· 141
5.4.1 模拟登录 ·································································································· 141
5.4.2 登录后下载文件并预览 ··········································································· 146
5.4.3 上传文件 ·································································································· 154
5.4.4 服务器端证书 CA校验方式···································································· 159
5.4.5 服务器端证书锁定防范中间人攻击 ························································ 164
5.4.6 流式响应下载文件并预览 ······································································· 173
第 6章上传下载部件 (
20min) ······················································································ 180
6.1分块下载的协议支持 ··························································································· 181
6.1.1 分块下载的需求 ······················································································· 181
6.1.2 HTTP支持 ······························································································· 182
6.2分类任务 API······································································································· 183
6.2.1 RequestData······························································································ 183
6.2.2 File············································································································ 183
6.2.3 UploadConfig···························································································· 183
6.2.4 TaskState··································································································· 184
6.2.5 request.uploadFile ····················································································· 184
6.2.6 UploadTask ······························································································· 184
6.2.7 DownloadConfig······················································································· 185
6.2.8 request.downloadFile ················································································ 186
6.2.9 DownloadTask ·························································································· 186
6.2.10 DownloadInfo ························································································· 187
6.3分类任务示例 ······································································································ 188
6.3.1 上传文件 ·································································································· 188
6.3.2 下载文件 ·································································································· 192
6.4统一任务 API······································································································· 198
6.4.1 Action ······································································································· 198
6.4.2 Network ···································································································· 198
6.4.3 Mode········································································································· 198
6.4.4 FileSpec ···································································································· 199
6.4.5 FormItem ·································································································· 199
6.4.6 Config ······································································································· 199
6.4.7 State ·········································································································· 201
6.4.8 Progress ···································································································· 202
6.4.9 Task··········································································································· 202
6.4.10统一任务处理函数 ················································································· 204
6.5统一任务示例 ······································································································ 205
6.5.1 多文件上传 ······························································································ 205
6.5.2 单文件多任务分块下载 ··········································································· 210
第 7章 RCP模块(
15min)····························································································· 219
7.1 RCP模块简介 ······································································································ 219
7.2 RCP模块 API ······································································································ 219
7.2.1 Request ····································································································· 219
7.2.2 Interceptor································································································· 220
7.2.3 RequestContext ························································································· 220
目录 IX
7.2.4 SecurityConfiguration ··············································································· 221
7.2.5 TransferConfiguration ··············································································· 221
7.2.6 Configuration ···························································································· 222
7.2.7 SessionConfiguration ················································································ 222
7.2.8 rcp.createSession······················································································· 223
7.2.9 Session ······································································································ 223
7.3 RCP模块示例 ······································································································ 225
7.3.1 使用 RCP调用 OpenAI接口实现智能助手 ··········································· 225
7.3.2 基于拦截器的性能监控 ··········································································· 232
7.3.3 下载文件并预览示例 ··············································································· 238
7.3.4 服务器端证书的 4种校验方式 ······························································· 243
7.3.5 断点续传下载文件 ··················································································· 250
第 8章 ArkWeb (
18min) ······························································································ 258
8.1 ArkWeb简介········································································································ 258
8.1.1 App内嵌网页简介··················································································· 258
8.1.2 ArkWeb简介 ···························································································· 258
8.2 ArkWeb API·········································································································· 259
8.2.1 WebOptions······························································································· 259
8.2.2 Web··········································································································· 260
8.2.3 WebDownloadItem···················································································· 261
8.2.4 WebDownloadDelegate············································································· 262
8.2.5 WebviewController ··················································································· 262
8.3 ArkWeb API示例································································································· 263
8.3.1 加载网页的 4种方式 ··············································································· 263
8.3.2 文件上传 ·································································································· 270
8.3.3 文件下载 ·································································································· 275
8.3.4 Web组件与应用互操作··········································································· 280
8.3.5 Web组件打印 ·························································································· 287
第 9章 WebSocket (
10min)·························································································· 292
9.1 WebSocket简介 ··································································································· 292
9.2 WebSocket API ····································································································· 292
9.2.1 webSocket.createWebSocket····································································· 293
9.2.2 WebSocketRequestOptions ······································································· 293
9.2.3 WebSocketCloseOptions ··········································································· 294
9.2.4 WebSocket ································································································ 294
9.3 WebSocket示例 ··································································································· 296
第 10章 WLAN网络 (
8min) ······················································································· 301
10.1 WLAN网络简介································································································ 301
10.2 WLAN API ········································································································· 301
10.2.1 WifiSecurityType ·················································································· 301
10.2.2 WifiStandard ························································································· 302
10.2.3 WifiScanInfo ························································································· 303
10.2.4 WifiLinkedInfo······················································································ 304
10.2.5 IpInfo ···································································································· 306
10.2.6 Ipv6Info ································································································ 306
10.2.7 WifiDeviceConfig ················································································· 307
10.2.8 wifiManager的函数 ············································································· 307
10.2.9 wifiManager的事件 ············································································· 309
10.3 WLAN示例 ······································································································· 311
10.3.1 WiFi信息获取······················································································ 311
10.3.2 WiFi热点扫描及连接 ·········································································· 315
| 基本信息 | |
|---|---|
| 出版社 | 清华大学出版社 |
| ISBN | 9787302710103 |
| 条码 | 9787302710103 |
| 编者 | 张磊 编著 编 |
| 译者 | -- |
| 出版年月 | 2026-03-01 00:00:00.0 |
| 开本 | 16开 |
| 装帧 | 平装 |
| 页数 | 320 |
| 字数 | 460000 |
| 版次 | 1 |
| 印次 | 1 |
| 纸张 | 70g胶版纸 |
暂无商品评论信息 [发表商品评论]
暂无商品咨询信息 [发表商品咨询]