Netstack

概述

为网络协议栈模块提供C接口。

起始版本: 11

汇总

文件

名称 描述
net_ssl_c.h 为SSL/TLS证书链校验模块定义C接口。
net_ssl_c_type.h 定义SSL/TLS证书链校验模块的C接口需要的数据结构。
net_websocket.h 为websocket客户端模块定义C接口。
net_websocket_type.h 定义websocket客户端模块的C接口需要的数据结构。

结构体

名称 描述
NetStack_CertBlob 证书数据结构体。
WebSocket_CloseResult websocket客户端来自服务端关闭的参数。
WebSocket_CloseOption websocket客户端主动关闭的参数。
WebSocket_ErrorResult websocket客户端来自服务端连接错误的参数。
WebSocket_OpenResult websocket客户端来自服务端连接成功的参数。
WebSocket_Header websocket客户端增加header头的链表节点。
WebSocket_RequestOptions websocket客户端和服务端建立连接的参数。
WebSocket websocket客户端结构体。

类型定义

名称 描述
(* WebSocket_OnOpenCallback) (struct WebSocket *client, WebSocket_OpenResult openResult) websocket客户端接收open消息的回调函数定义。
(* WebSocket_OnMessageCallback) (struct WebSocket *client, char *data, uint32_t length) websocket客户端接收数据的回调函数定义。
(* WebSocket_OnErrorCallback) (struct WebSocket *client, WebSocket_ErrorResult errorResult) websocket客户端接收error错误消息的回调函数定义。
(* WebSocket_OnCloseCallback) (struct WebSocket *client, WebSocket_CloseResult closeResult) websocket客户端接收close消息的回调函数定义。

枚举

名称 描述
NetStack_CertType {
NetStack_CERT_TYPE_PEM = 0,
NetStack_CERT_TYPE_DER = 1,
NetStack_CERT_TYPE_INVALID
}
证书类型枚举。
WebSocket_ErrCode {
WEBSOCKET_OK = 0,
E_BASE = 1000,
WEBSOCKET_CLIENT_NULL = (E_BASE + 1),
WEBSOCKET_CLIENT_NOT_CREATED = (E_BASE + 2),
WEBSOCKET_CONNECTION_ERROR = (E_BASE + 3),
WEBSOCKET_CONNECTION_PARSE_URL_ERROR = (E_BASE + 5),
WEBSOCKET_CONNECTION_NO_MEMORY = (E_BASE + 6),
WEBSOCKET_CONNECTION_CLOSED_BY_PEER = (E_BASE + 7),
WEBSOCKET_DESTROYED = (E_BASE + 8),
WEBSOCKET_PROTOCOL_ERROR = (E_BASE + 9),
WEBSOCKET_SEND_NO_MEMORY = (E_BASE + 10),
WEBSOCKET_SEND_DATA_NULL = (E_BASE + 11),
WEBSOCKET_DATA_LENGTH_EXCEEDED = (E_BASE + 12),
WEBSOCKET_QUEUE_LENGTH_EXCEEDED = (E_BASE + 13),
WEBSOCKET_NO_CLIENT_CONTEXT = (E_BASE + 14),
WEBSOCKET_NO_HEADER_CONTEXT = (E_BASE + 15),
WEBSOCKET_HEADER_EXCEEDED = (E_BASE + 16),
WEBSOCKET_NO_CONNECTION = (E_BASE + 17),
WEBSOCKET_NO_CONNECTION_CONTEXT = (E_BASE + 18)
}
websocket错误码。

函数

名称 描述
OH_WebSocketClient_Constructor (WebSocket_OnOpenCallback onOpen, WebSocket_OnMessageCallback onMessage, WebSocket_OnErrorCallback onError, WebSocket_OnCloseCallback onclose) Websocket客户端的构造函数。
OH_WebSocketClient_AddHeader (struct WebSocket *client, struct WebSocket_Header header) 将header头信息添加到client客户端request中。
OH_WebSocketClient_Connect (struct WebSocket *client, const char *url, struct WebSocket_RequestOptions options) 客户端连接服务端。
OH_WebSocketClient_Send (struct WebSocket *client, char *data, size_t length) 客户端向服务端发送数据。
OH_WebSocketClient_Close (struct WebSocket *client, struct WebSocket_CloseOption options) 客户端主动关闭websocket连接。
OH_WebSocketClient_Destroy (struct WebSocket *client) 释放websocket连接上下文和资源。

变量

名称 描述
NetStack_CertBlob::type 证书类型。
NetStack_CertBlob::size 证书内容长度。
NetStack_CertBlob::data 证书内容。
WebSocket_CloseResult::code 关闭值。
WebSocket_CloseResult::reason 关闭原因。
WebSocket_CloseOption::code 关闭值。
WebSocket_CloseOption::reason 关闭原因。
WebSocket_ErrorResult::errorCode 错误码。
WebSocket_ErrorResult::errorMessage 错误的消息。
WebSocket_OpenResult::code websocket客户端连接成功码。
WebSocket_OpenResult::reason websocket客户端连接原因。
WebSocket_Header::fieldName header头的字段名。
WebSocket_Header::fieldValue header头的字段内容。
WebSocket_Header * WebSocket_Header::next header头链表的next指针。
WebSocket_Header * WebSocket_RequestOptions::headers header头信息。
WebSocket_OnOpenCallback WebSocket::onOpen 客户端接收连接消息的回调指针。
WebSocket_OnMessageCallback WebSocket::onMessage 客户端接收消息的回调指针。
WebSocket_OnErrorCallback WebSocket::onError 客户端接收错误消息的回调指针。
WebSocket_OnCloseCallback WebSocket::onClose 客户端接收关闭消息的回调指针。
WebSocket_RequestOptions WebSocket::requestOptions 客户端建立连接请求内容。

类型定义说明

WebSocket_OnCloseCallback

typedef void(* WebSocket_OnCloseCallback) (struct WebSocket *client, WebSocket_CloseResult closeResult)

描述 websocket客户端接收close消息的回调函数定义

起始版本: 11

参数:

名称 描述
client websocket客户端
closeResult websocket客户端接收关闭消息的内容

WebSocket_OnErrorCallback

typedef void(* WebSocket_OnErrorCallback) (struct WebSocket *client, WebSocket_ErrorResult errorResult)

描述 websocket客户端接收error错误消息的回调函数定义

起始版本: 11

参数:

名称 描述
client websocket客户端
errorResult websocket客户端接收连接错误消息的内容

WebSocket_OnMessageCallback

typedef void(* WebSocket_OnMessageCallback) (struct WebSocket *client, char *data, uint32_t length)

描述 websocket客户端接收数据的回调函数定义

起始版本: 11

参数:

名称 描述
client websocket客户端
data websocket客户端接收的数据
length websocket客户端接收的数据长度

WebSocket_OnOpenCallback

typedef void(* WebSocket_OnOpenCallback) (struct WebSocket *client, WebSocket_OpenResult openResult)

描述 websocket客户端接收open消息的回调函数定义

起始版本: 11

参数:

名称 描述
client websocket客户端
openResult websocket客户端接收建立连接消息的内容

枚举类型说明

NetStack_CertType

enum NetStack_CertType

描述

证书类型枚举。

起始版本: 11

枚举值 描述
NetStack_CERT_TYPE_PEM PEM证书类型。
NetStack_CERT_TYPE_DER DER证书类型。
NetStack_CERT_TYPE_INVALID 错误证书类型。

WebSocket_ErrCode

enum WebSocket_ErrCode

描述 websocket错误码

起始版本: 11

枚举值 描述
WEBSOCKET_OK 执行成功。
E_BASE 异常错误代码的基础。
WEBSOCKET_CLIENT_NULL websocket为空。
WEBSOCKET_CLIENT_NOT_CREATED websocket未创建。
WEBSOCKET_CONNECTION_ERROR websocket客户端连接错误。
WEBSOCKET_CONNECTION_PARSE_URL_ERROR websocket客户端连接参数解析错误。
WEBSOCKET_CONNECTION_NO_MEMORY websocket客户端连接时创建上下文无内存。
WEBSOCKET_CONNECTION_CLOSED_BY_PEER 初始化时候关闭。
WEBSOCKET_DESTROYED websocket连接被销毁。
WEBSOCKET_PROTOCOL_ERROR websocket客户端连接时候协议错误。
WEBSOCKET_SEND_NO_MEMORY websocket客户端发送数据时候没有足够内存。
WEBSOCKET_SEND_DATA_NULL websocket客户端发送数据为空。
WEBSOCKET_DATA_LENGTH_EXCEEDED websocket客户端发送数据长度超限制。
WEBSOCKET_QUEUE_LENGTH_EXCEEDED websocket客户端发送数据队列长度超限制。
WEBSOCKET_NO_CLIENT_CONTEXT websocket客户端上下文为空。
WEBSOCKET_NO_HEADER_CONTEXT websocket客户端header头异常。
WEBSOCKET_HEADER_EXCEEDED websocket客户端header头超过限制。
WEBSOCKET_NO_CONNECTION websocket客户端没有连接。
WEBSOCKET_NO_CONNECTION_CONTEXT websocket客户端没有连接上下文。

函数说明

OH_NetStack_VerifyCertification()

uint32_t OH_NetStack_VerifyCertification (const struct NetStack_CertBlob * cert, const struct NetStack_CertBlob * caCert )

描述

证书链校验接口。

系统能力: SystemCapability.Communication.NetStack

起始版本: 11

参数:

名称 描述
cert 用户传入的待校验证书。
caCert 用户指定的证书,若为空则以系统预置证书进行校验。

返回:

0 - 成功.

2305001 - 未指定的错误.

2305002 - 无法获取颁发者证书.

2305003 - 无法获取证书吊销列表(CRL).

2305004 - 无法解密证书签名.

2305005 - 无法解密CRL签名.

2305006 - 无法解码颁发者公钥.

2305007 - 证书签名失败.

2305008 - CRL签名失败.

2305009 - 证书尚未生效.

2305010 - 证书已过期.

2305011 - CRL尚未有效.

2305012 - CRL已过期.

2305023 - 证书已被吊销.

2305024 - 证书颁发机构(CA)无效.

2305027 - 证书不受信任.

OH_WebSocketClient_AddHeader()

int OH_WebSocketClient_AddHeader (struct WebSocket * client, struct WebSocket_Header header )

描述 将header头信息添加到client客户端request中。

系统能力: SystemCapability.Communication.NetStack

起始版本: 11

参数:

名称 描述
client 客户端指针。
header header头信息。

返回:

返回值为0表示执行成功。返回错细信息可以查看OH_Websocket_ErrCode

OH_WebSocketClient_Close()

int OH_WebSocketClient_Close (struct WebSocket * client, struct WebSocket_CloseOption options )

描述 客户端主动关闭websocket连接。

系统能力: SystemCapability.Communication.NetStack

起始版本: 11

参数:

名称 描述
client 客户端。
url 客户端要连接到服务端的地址。
options 发起关闭连接的可选参数。

返回:

返回值为0表示执行成功。返回错细信息可以查看OH_Websocket_ErrCode

Permission:

ohos.permission.INTERNET

OH_WebSocketClient_Connect()

int OH_WebSocketClient_Connect (struct WebSocket * client, const char * url, struct WebSocket_RequestOptions options )

描述 客户端连接服务端。

系统能力: SystemCapability.Communication.NetStack

起始版本: 11

参数:

名称 描述
client 客户端指针。
url 客户端要连接到服务端的地址。
options 发起连接的可选参数。

返回:

返回值为0表示执行成功。返回错细信息可以查看OH_Websocket_ErrCode

Permission:

ohos.permission.INTERNET

OH_WebSocketClient_Constructor()

struct WebSocket* OH_WebSocketClient_Constructor (WebSocket_OnOpenCallback onOpen, WebSocket_OnMessageCallback onMessage, WebSocket_OnErrorCallback onError, WebSocket_OnCloseCallback onclose )

描述 Websocket客户端的构造函数。

系统能力: SystemCapability.Communication.NetStack

起始版本: 11

参数:

名称 描述
onMessage 客户端定义的接收消息的回调函数。
onClose 客户端定义的关闭消息的回调函数。
onError 客户端定义的错误消息的回调函数。
onOpen 客户端定义的建立连接消息的回调函数。

返回:

成功返回客户端指针,失败返回为NULL。

OH_WebSocketClient_Destroy()

int OH_WebSocketClient_Destroy (struct WebSocket * client)

描述 释放websocket连接上下文和资源。

系统能力: SystemCapability.Communication.NetStack

起始版本: 11

参数:

名称 描述
client 客户端。

返回:

返回值为0表示执行成功。返回错细信息可以查看OH_Websocket_ErrCode

Permission:

ohos.permission.INTERNET

OH_WebSocketClient_Send()

int OH_WebSocketClient_Send (struct WebSocket * client, char * data, size_t length )

描述 客户端向服务端发送数据。

系统能力: SystemCapability.Communication.NetStack

起始版本: 11

参数:

名称 描述
client 客户端。
data 客户端发送的数据。
length 客户端发送的数据长度。

返回:

0 - 成功.

返回值为0表示执行成功。返回错细信息可以查看OH_Websocket_ErrCode

Permission:

ohos.permission.INTERNET

变量说明

data

uint8_t* NetStack_CertBlob::data

描述

证书内容。

size

uint32_t NetStack_CertBlob::size

描述

证书内容长度。

type

enum NetStack_CertType NetStack_CertBlob::type

描述

证书类型。

code [1/3]

uint32_t WebSocket_CloseResult::code

描述

关闭值。

code [2/3]

uint32_t WebSocket_CloseOption::code

描述

关闭值。

code [3/3]

uint32_t WebSocket_OpenResult::code

描述

websocket客户端连接成功码。

errorCode

uint32_t WebSocket_ErrorResult::errorCode

描述

错误码。

errorMessage

const char* WebSocket_ErrorResult::errorMessage

描述

错误的消息。

fieldName

const char* WebSocket_Header::fieldName

描述

header头的字段名。

fieldValue

const char* WebSocket_Header::fieldValue

描述

header头的字段内容。

next

struct WebSocket_Header* WebSocket_Header::next

描述

header头链表的next指针。

onClose

WebSocket_OnCloseCallback WebSocket::onClose

描述

客户端接收关闭消息的回调指针。

onError

WebSocket_OnErrorCallback WebSocket::onError

描述

客户端接收错误消息的回调指针。

onMessage

WebSocket_OnMessageCallback WebSocket::onMessage

描述

客户端接收消息的回调指针。

onOpen

WebSocket_OnOpenCallback WebSocket::onOpen

描述

客户端接收连接消息的回调指针。

reason [1/3]

const char* WebSocket_CloseResult::reason

描述

关闭原因。

reason [2/3]

const char* WebSocket_CloseOption::reason

描述

关闭原因。

reason [3/3]

const char* WebSocket_OpenResult::reason

描述

websocket客户端连接原因。

requestOptions

WebSocket_RequestOptions WebSocket::requestOptions

描述

客户端建立连接请求内容。