• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Netstack
2
3
4## 概述
5
6为网络协议栈模块提供c接口。
7
8**起始版本:** 11
9
10
11## 汇总
12
13
14### 文件
15
16| 名称 | 描述 |
17| -------- | -------- |
18| [net_ssl_c.h](net__ssl__c_8h.md) | 为SSL/TLS证书链校验模块定义C接口。 |
19| [net_ssl_c_type.h](net__ssl__c__type_8h.md) | 定义SSL/TLS证书链校验模块的C接口需要的数据结构。 |
20| [net_websocket.h](net__websocket_8h.md) | 为websocket客户端模块定义C接口。 |
21| [net_websocket_type.h](net__websocket__type_8h.md) | 定义websocket客户端模块的C接口需要的数据结构。 |
22
23
24### 结构体
25
26| 名称 | 描述 |
27| -------- | -------- |
28| [NetStack_CertBlob](_net_stack___cert_blob.md) | 证书数据结构体。 |
29| [WebSocket_CloseResult](_web_socket___close_result.md) | websocket客户端来自服务端关闭的参数。  |
30| [WebSocket_CloseOption](_web_socket___close_option.md) | websocket客户端主动关闭的参数。  |
31| [WebSocket_ErrorResult](_web_socket___error_result.md) | websocket客户端来自服务端连接错误的参数。  |
32| [WebSocket_OpenResult](_web_socket___open_result.md) | websocket客户端来自服务端连接成功的参数。  |
33| [WebSocket_Header](_web_socket___header.md) | websocket客户端增加header头的链表节点。  |
34| [WebSocket_RequestOptions](_web_socket___request_options.md) | websocket客户端和服务端建立连接的参数。  |
35| [WebSocket](_web_socket.md) | websocket客户端结构体。  |
36
37
38### 类型定义
39
40| 名称 | 描述 |
41| -------- | -------- |
42| (\* [WebSocket_OnOpenCallback](#websocket_onopencallback)) (struct [WebSocket](_web_socket.md) \*client, [WebSocket_OpenResult](_web_socket___open_result.md) openResult) | websocket客户端接收open消息的回调函数定义。  |
43| (\* [WebSocket_OnMessageCallback](#websocket_onmessagecallback)) (struct [WebSocket](_web_socket.md) \*client, char \*data, uint32_t length) | websocket客户端接收数据的回调函数定义。  |
44| (\* [WebSocket_OnErrorCallback](#websocket_onerrorcallback)) (struct [WebSocket](_web_socket.md) \*client, [WebSocket_ErrorResult](_web_socket___error_result.md) errorResult) | websocket客户端接收error错误消息的回调函数定义。  |
45| (\* [WebSocket_OnCloseCallback](#websocket_onclosecallback)) (struct [WebSocket](_web_socket.md) \*client, [WebSocket_CloseResult](_web_socket___close_result.md) closeResult) | websocket客户端接收close消息的回调函数定义。  |
46
47### 枚举
48
49| 名称 | 描述 |
50| -------- | -------- |
51| [NetStack_CertType](#netstack_certtype) { <br/>NetStack_CERT_TYPE_PEM = 0, <br/>NetStack_CERT_TYPE_DER = 1, <br/>NetStack_CERT_TYPE_INVALID <br/>} | 证书类型枚举。 |
52| [WebSocket_ErrCode](#websocket_errcode) {<br/>WEBSOCKET_OK = 0, <br/>E_BASE = 1000, <br/>WEBSOCKET_CLIENT_NULL = (E_BASE + 1), <br/>WEBSOCKET_CLIENT_NOT_CREATED = (E_BASE + 2),<br/>WEBSOCKET_CONNECTION_ERROR = (E_BASE + 3), <br/>WEBSOCKET_CONNECTION_PARSE_URL_ERROR = (E_BASE + 5),<br/> WEBSOCKET_CONNECTION_NO_MEMORY = (E_BASE + 6), <br/>WEBSOCKET_CONNECTION_CLOSED_BY_PEER = (E_BASE + 7),<br/>WEBSOCKET_DESTROYED = (E_BASE + 8), <br/>WEBSOCKET_PROTOCOL_ERROR = (E_BASE + 9), <br/>WEBSOCKET_SEND_NO_MEMORY = (E_BASE + 10), <br/>WEBSOCKET_SEND_DATA_NULL = (E_BASE + 11),<br/>WEBSOCKET_DATA_LENGTH_EXCEEDED = (E_BASE + 12), <br/>WEBSOCKET_QUEUE_LENGTH_EXCEEDED = (E_BASE + 13),<br/> WEBSOCKET_NO_CLIENT_CONTEXT = (E_BASE + 14), <br/>WEBSOCKET_NO_HEADER_CONTEXT = (E_BASE + 15),<br/>WEBSOCKET_HEADER_EXCEEDED = (E_BASE + 16), <br/>WEBSOCKET_NO_CONNECTION = (E_BASE + 17), <br/>WEBSOCKET_NO_CONNECTION_CONTEXT = (E_BASE + 18)<br/>} | websocket错误码。  |
53
54### 函数
55
56| 名称 | 描述 |
57| -------- | -------- |
58| [OH_WebSocketClient_Constructor](#oh_websocketclient_constructor) ([WebSocket_OnOpenCallback](#websocket_onopencallback) onOpen, [WebSocket_OnMessageCallback](#websocket_onmessagecallback) onMessage, [WebSocket_OnErrorCallback](#websocket_onerrorcallback) onError, [WebSocket_OnCloseCallback](#websocket_onclosecallback) onclose) | Websocket客户端的构造函数。  |
59| [OH_WebSocketClient_AddHeader](#oh_websocketclient_addheader) (struct [WebSocket](_web_socket.md) \*client, struct [WebSocket_Header](_web_socket___header.md) header) | 将header头信息添加到client客户端request中。  |
60| [OH_WebSocketClient_Connect](#oh_websocketclient_connect) (struct [WebSocket](_web_socket.md) \*client, const char \*url, struct [WebSocket_RequestOptions](_web_socket___request_options.md) options) | 客户端连接服务端。  |
61| [OH_WebSocketClient_Send](#oh_websocketclient_send) (struct [WebSocket](_web_socket.md) \*client, char \*data, size_t length) | 客户端向服务端发送数据。  |
62| [OH_WebSocketClient_Close](#oh_websocketclient_close) (struct [WebSocket](_web_socket.md) \*client, struct [WebSocket_CloseOption](_web_socket___close_option.md) options) | 客户端主动关闭websocket连接。  |
63| [OH_WebSocketClient_Destroy](#oh_websocketclient_destroy) (struct [WebSocket](_web_socket.md) \*client) | 释放websocket连接上下文和资源。  |
64
65### 变量
66
67| 名称 | 描述 |
68| -------- | -------- |
69| [NetStack_CertBlob::type](#type) | 证书类型。 |
70| [NetStack_CertBlob::size](#size) | 证书内容长度。 |
71| [NetStack_CertBlob::data](#data) | 证书内容。 |
72| [WebSocket_CloseResult::code](#code-13) | 关闭值。  |
73| [WebSocket_CloseResult::reason](#reason-13) | 关闭原因。  |
74| [WebSocket_CloseOption::code](#code-23) | 关闭值。  |
75| [WebSocket_CloseOption::reason](#reason-23) | 关闭原因。  |
76| [WebSocket_ErrorResult::errorCode](#errorcode) | 错误码。  |
77| [WebSocket_ErrorResult::errorMessage](#errormessage) | 错误的消息。  |
78| [WebSocket_OpenResult::code](#code-33) | websocket客户端连接成功码。  |
79| [WebSocket_OpenResult::reason](#reason-33) | websocket客户端连接原因。  |
80| [WebSocket_Header::fieldName](#fieldname) | header头的字段名。  |
81| [WebSocket_Header::fieldValue](#fieldvalue) | header头的字段内容。  |
82| [WebSocket_Header](_web_socket___header.md) \* [WebSocket_Header::next](#next) | header头链表的next指针。  |
83| [WebSocket_Header](_web_socket___header.md) \* WebSocket_RequestOptions::headers | header头信息。 |
84| [WebSocket_OnOpenCallback](#websocket_onopencallback)[WebSocket::onOpen](#onopen) | 客户端接收连接消息的回调指针。  |
85| [WebSocket_OnMessageCallback](#websocket_onmessagecallback)[WebSocket::onMessage](#onmessage) | 客户端接收消息的回调指针。  |
86| [WebSocket_OnErrorCallback](#websocket_onerrorcallback)[WebSocket::onError](#onerror) | 客户端接收错误消息的回调指针。  |
87| [WebSocket_OnCloseCallback](#websocket_onclosecallback)[WebSocket::onClose](#onclose) | 客户端接收关闭消息的回调指针。  |
88| [WebSocket_RequestOptions](_web_socket___request_options.md)[WebSocket::requestOptions](#requestoptions) | 客户端建立连接请求内容。 |
89
90
91## 类型定义说明
92
93
94### WebSocket_OnCloseCallback
95
96```
97typedef void(* WebSocket_OnCloseCallback) (struct WebSocket *client, WebSocket_CloseResult closeResult)
98```
99**描述**
100websocket客户端接收close消息的回调函数定义
101
102**起始版本:** 11
103
104**参数:**
105
106| 名称 | 描述 |
107| -------- | -------- |
108| client | websocket客户端  |
109| closeResult | websocket客户端接收关闭消息的内容  |
110
111
112### WebSocket_OnErrorCallback
113
114```
115typedef void(* WebSocket_OnErrorCallback) (struct WebSocket *client, WebSocket_ErrorResult errorResult)
116```
117**描述**
118websocket客户端接收error错误消息的回调函数定义
119
120**起始版本:** 11
121
122**参数:**
123
124| 名称 | 描述 |
125| -------- | -------- |
126| client | websocket客户端  |
127| errorResult | websocket客户端接收连接错误消息的内容  |
128
129
130### WebSocket_OnMessageCallback
131
132```
133typedef void(* WebSocket_OnMessageCallback) (struct WebSocket *client, char *data, uint32_t length)
134```
135**描述**
136websocket客户端接收数据的回调函数定义
137
138**起始版本:** 11
139
140**参数:**
141
142| 名称 | 描述 |
143| -------- | -------- |
144| client | websocket客户端  |
145| data | websocket客户端接收的数据  |
146| length | websocket客户端接收的数据长度  |
147
148
149### WebSocket_OnOpenCallback
150
151```
152typedef void(* WebSocket_OnOpenCallback) (struct WebSocket *client, WebSocket_OpenResult openResult)
153```
154**描述**
155websocket客户端接收open消息的回调函数定义
156
157**起始版本:** 11
158
159**参数:**
160
161| 名称 | 描述 |
162| -------- | -------- |
163| client | websocket客户端  |
164| openResult | websocket客户端接收建立连接消息的内容  |
165
166
167
168## 枚举类型说明
169
170
171### NetStack_CertType
172
173```
174enum NetStack_CertType
175```
176
177**描述**
178
179证书类型枚举。
180
181**起始版本:** 11
182
183| 枚举值 | 描述 |
184| -------- | -------- |
185| NetStack_CERT_TYPE_PEM | PEM证书类型。 |
186| NetStack_CERT_TYPE_DER | DER证书类型。 |
187| NetStack_CERT_TYPE_INVALID | 错误证书类型。 |
188
189
190### WebSocket_ErrCode
191
192```
193enum WebSocket_ErrCode
194```
195**描述**
196websocket错误码
197
198**起始版本:** 11
199
200| 枚举值 | 描述 |
201| -------- | -------- |
202| WEBSOCKET_OK  | 执行成功。 |
203| E_BASE  | 异常错误代码的基础。 |
204| WEBSOCKET_CLIENT_NULL  | websocket为空。 |
205| WEBSOCKET_CLIENT_NOT_CREATED  | websocket未创建。 |
206| WEBSOCKET_CONNECTION_ERROR  | websocket客户端连接错误。 |
207| WEBSOCKET_CONNECTION_PARSE_URL_ERROR  | websocket客户端连接参数解析错误。 |
208| WEBSOCKET_CONNECTION_NO_MEMORY  | websocket客户端连接时创建上下文无内存。 |
209| WEBSOCKET_CONNECTION_CLOSED_BY_PEER  | 初始化时候关闭。 |
210| WEBSOCKET_DESTROYED  | websocket连接被销毁。 |
211| WEBSOCKET_PROTOCOL_ERROR  | websocket客户端连接时候协议错误。 |
212| WEBSOCKET_SEND_NO_MEMORY  | websocket客户端发送数据时候没有足够内存。 |
213| WEBSOCKET_SEND_DATA_NULL  | websocket客户端发送数据为空。 |
214| WEBSOCKET_DATA_LENGTH_EXCEEDED  | websocket客户端发送数据长度超限制。 |
215| WEBSOCKET_QUEUE_LENGTH_EXCEEDED  | websocket客户端发送数据队列长度超限制。 |
216| WEBSOCKET_NO_CLIENT_CONTEXT  | websocket客户端上下文为空。 |
217| WEBSOCKET_NO_HEADER_CONTEXT  | websocket客户端header头异常。 |
218| WEBSOCKET_HEADER_EXCEEDED  | websocket客户端header头超过限制。 |
219| WEBSOCKET_NO_CONNECTION  | websocket客户端没有连接。 |
220| WEBSOCKET_NO_CONNECTION_CONTEXT  | websocket客户端没有连接上下文。 |
221
222
223## 函数说明
224
225
226### OH_NetStack_VerifyCertification()
227
228```
229uint32_t OH_NetStack_VerifyCertification (const struct NetStack_CertBlob * cert, const struct NetStack_CertBlob * caCert )
230```
231
232**描述**
233
234证书链校验接口。
235
236**系统能力:** SystemCapability.Communication.NetStack
237
238**起始版本:** 11
239
240**参数:**
241
242| 名称 | 描述 |
243| -------- | -------- |
244| cert | 用户传入的待校验证书。 |
245| caCert | 用户指定的证书,若为空则以系统预置证书进行校验。 |
246
247**返回:**
248
2490 - 成功.
250
2512305001 - 未指定的错误.
252
2532305002 - 无法获取颁发者证书.
254
2552305003 - 无法获取证书吊销列表(CRL).
256
2572305004 - 无法解密证书签名.
258
2592305005 - 无法解密CRL签名.
260
2612305006 - 无法解码颁发者公钥.
262
2632305007 - 证书签名失败.
264
2652305008 - CRL签名失败.
266
2672305009 - 证书尚未生效.
268
2692305010 - 证书已过期.
270
2712305011 - CRL尚未有效.
272
2732305012 - CRL已过期.
274
2752305023 - 证书已被吊销.
276
2772305024 - 证书颁发机构(CA)无效.
278
2792305027 - 证书不受信任.
280
281### OH_WebSocketClient_AddHeader()
282
283```
284int OH_WebSocketClient_AddHeader (struct WebSocket * client, struct WebSocket_Header header )
285```
286**描述**
287将header头信息添加到client客户端request中。
288
289**系统能力:** SystemCapability.Communication.NetStack
290
291**起始版本:** 11
292
293**参数:**
294
295| 名称 | 描述 |
296| -------- | -------- |
297| client | 客户端指针。  |
298| header | header头信息。  |
299
300**返回:**
301
302返回值为0表示执行成功。返回错细信息可以查看**OH_Websocket_ErrCode**。
303
304
305
306### OH_WebSocketClient_Close()
307
308```
309int OH_WebSocketClient_Close (struct WebSocket * client, struct WebSocket_CloseOption options )
310```
311**描述**
312客户端主动关闭websocket连接。
313
314**系统能力:** SystemCapability.Communication.NetStack
315
316**起始版本:** 11
317
318**参数:**
319
320| 名称 | 描述 |
321| -------- | -------- |
322| client | 客户端。  |
323| url | 客户端要连接到服务端的地址。  |
324| options | 发起关闭连接的可选参数。  |
325
326**返回:**
327
328返回值为0表示执行成功。返回错细信息可以查看**OH_Websocket_ErrCode**。
329
330**Permission:**
331
332ohos.permission.INTERNET
333
334
335### OH_WebSocketClient_Connect()
336
337```
338int OH_WebSocketClient_Connect (struct WebSocket * client, const char * url, struct WebSocket_RequestOptions options )
339```
340**描述**
341客户端连接服务端。
342
343**系统能力:** SystemCapability.Communication.NetStack
344
345**起始版本:** 11
346
347**参数:**
348
349| 名称 | 描述 |
350| -------- | -------- |
351| client | 客户端指针。  |
352| url | 客户端要连接到服务端的地址。  |
353| options | 发起连接的可选参数。  |
354
355**返回:**
356
357返回值为0表示执行成功。返回错细信息可以查看**OH_Websocket_ErrCode**。
358
359**Permission:**
360
361ohos.permission.INTERNET
362
363
364### OH_WebSocketClient_Constructor()
365
366```
367struct WebSocket* OH_WebSocketClient_Constructor (WebSocket_OnOpenCallback onOpen, WebSocket_OnMessageCallback onMessage, WebSocket_OnErrorCallback onError, WebSocket_OnCloseCallback onclose )
368```
369**描述**
370Websocket客户端的构造函数。
371
372**系统能力:** SystemCapability.Communication.NetStack
373
374**起始版本:** 11
375
376**参数:**
377
378| 名称 | 描述 |
379| -------- | -------- |
380| onMessage | 客户端定义的接收消息的回调函数。  |
381| onClose | 客户端定义的关闭消息的回调函数。  |
382| onError | 客户端定义的错误消息的回调函数。  |
383| onOpen | 客户端定义的建立连接消息的回调函数。  |
384
385**返回:**
386
387成功返回客户端指针,失败返回为NULL。
388
389
390
391### OH_WebSocketClient_Destroy()
392
393```
394int OH_WebSocketClient_Destroy (struct WebSocket * client)
395```
396**描述**
397释放websocket连接上下文和资源。
398
399**系统能力:** SystemCapability.Communication.NetStack
400
401**起始版本:** 11
402
403**参数:**
404
405| 名称 | 描述 |
406| -------- | -------- |
407| client | 客户端。  |
408
409**返回:**
410
411返回值为0表示执行成功。返回错细信息可以查看**OH_Websocket_ErrCode**。
412
413**Permission:**
414
415ohos.permission.INTERNET
416
417
418### OH_WebSocketClient_Send()
419
420```
421int OH_WebSocketClient_Send (struct WebSocket * client, char * data, size_t length )
422```
423**描述**
424客户端向服务端发送数据。
425
426**系统能力:** SystemCapability.Communication.NetStack
427
428**起始版本:** 11
429
430**参数:**
431
432| 名称 | 描述 |
433| -------- | -------- |
434| client | 客户端。  |
435| data | 客户端发送的数据。  |
436| length | 客户端发送的数据长度。  |
437
438**返回:**
439
4400 - 成功.
441
442返回值为0表示执行成功。返回错细信息可以查看**OH_Websocket_ErrCode**。
443
444**Permission:**
445
446ohos.permission.INTERNET
447
448## 变量说明
449
450
451### data
452
453```
454uint8_t* NetStack_CertBlob::data
455```
456
457**描述**
458
459证书内容。
460
461
462### size
463
464```
465uint32_t NetStack_CertBlob::size
466```
467
468**描述**
469
470证书内容长度。
471
472
473### type
474
475```
476enum NetStack_CertType NetStack_CertBlob::type
477```
478
479**描述**
480
481证书类型。
482
483
484### code [1/3]
485
486```
487uint32_t WebSocket_CloseResult::code
488```
489
490**描述**
491
492关闭值。
493
494
495### code [2/3]
496
497```
498uint32_t WebSocket_CloseOption::code
499```
500
501**描述**
502
503关闭值。
504
505
506### code [3/3]
507
508```
509uint32_t WebSocket_OpenResult::code
510```
511
512**描述**
513
514websocket客户端连接成功码。
515
516
517### errorCode
518
519```
520uint32_t WebSocket_ErrorResult::errorCode
521```
522
523**描述**
524
525错误码。
526
527
528### errorMessage
529
530```
531const char* WebSocket_ErrorResult::errorMessage
532```
533
534**描述**
535
536错误的消息。
537
538
539### fieldName
540
541```
542const char* WebSocket_Header::fieldName
543```
544
545**描述**
546
547header头的字段名。
548
549
550### fieldValue
551
552```
553const char* WebSocket_Header::fieldValue
554```
555
556**描述**
557
558header头的字段内容。
559
560
561### next
562
563```
564struct WebSocket_Header* WebSocket_Header::next
565```
566
567**描述**
568
569header头链表的next指针。
570
571
572### onClose
573
574```
575WebSocket_OnCloseCallback WebSocket::onClose
576```
577
578**描述**
579
580客户端接收关闭消息的回调指针。
581
582
583### onError
584
585```
586WebSocket_OnErrorCallback WebSocket::onError
587```
588
589**描述**
590
591客户端接收错误消息的回调指针。
592
593
594### onMessage
595
596```
597WebSocket_OnMessageCallback WebSocket::onMessage
598```
599
600**描述**
601
602客户端接收消息的回调指针。
603
604
605### onOpen
606
607```
608WebSocket_OnOpenCallback WebSocket::onOpen
609```
610
611**描述**
612
613客户端接收连接消息的回调指针。
614
615
616### reason [1/3]
617
618```
619const char* WebSocket_CloseResult::reason
620```
621
622**描述**
623
624关闭原因。
625
626
627### reason [2/3]
628
629```
630const char* WebSocket_CloseOption::reason
631```
632
633**描述**
634
635关闭原因。
636
637
638### reason [3/3]
639
640```
641const char* WebSocket_OpenResult::reason
642```
643
644**描述**
645
646websocket客户端连接原因。
647
648
649### requestOptions
650
651```
652WebSocket_RequestOptions WebSocket::requestOptions
653```
654
655**描述**
656
657客户端建立连接请求内容。