Socket连接

2024-01-23 16:42 更新

本模块提供利用Socket进行数据传输的能力,支持TCPSocket、UDPSocket、WebSocket和TLSSocket。

说明

本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

  1. import socket from '@ohos.net.socket';

socket.constructUDPSocketInstance

constructUDPSocketInstance(): UDPSocket

创建一个UDPSocket对象。

系统能力:SystemCapability.Communication.NetStack

返回值:

类型

说明

UDPSocket

返回一个UDPSocket对象。

示例:

  1. let udp = socket.constructUDPSocketInstance();

UDPSocket

UDPSocket连接。在调用UDPSocket的方法前,需要先通过socket.constructUDPSocketInstance创建UDPSocket对象。

bind

bind(address: NetAddress, callback: AsyncCallback<void>): void

绑定IP地址和端口,端口可以指定或由系统随机分配。使用callback方式作为异步方法。

说明

客户端使用该方法创建socket。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

address

NetAddress

目标地址信息,参考NetAddress

callback

AsyncCallback<void>

回调函数。

错误码:

错误码ID

错误信息

401

Parameter error.

201

Permission denied.

示例:

  1. let udp = socket.constructUDPSocketInstance();
  2. udp.bind({address: '192.168.xx.xxx', port: xxxx, family: 1}, err => {
  3. if (err) {
  4. console.log('bind fail');
  5. return;
  6. }
  7. console.log('bind success');
  8. })

bind

bind(address: NetAddress): Promise<void>

绑定IP地址和端口,端口可以指定或由系统随机分配。使用Promise方式作为异步方法。

说明

客户端使用该方法创建socket。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

address

NetAddress

目标地址信息,参考NetAddress

错误码:

错误码ID

错误信息

401

Parameter error.

201

Permission denied.

返回值:

类型

说明

Promise<void>

以Promise形式异步返回UDPSocket绑定的结果。

示例:

  1. let udp = socket.constructUDPSocketInstance();
  2. let promise = udp.bind({address: '192.168.xx.xxx', port: 8080, family: 1});
  3. promise .then(() => {
  4. console.log('bind success');
  5. }).catch(err => {
  6. console.log('bind fail');
  7. });

send

send(options: UDPSendOptions, callback: AsyncCallback<void>): void

通过UDPSocket连接发送数据。使用callback方式作为异步方法。

发送数据前,需要先调用UDPSocket.bind()绑定IP地址和端口。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

options

UDPSendOptions

UDPSocket发送参数,参考UDPSendOptions

callback

AsyncCallback<void>

回调函数。

错误码:

错误码ID

错误信息

401

Parameter error.

201

Permission denied.

示例:

  1. let udp = socket.constructUDPSocketInstance();
  2. udp.send({
  3. data:'Hello, server!',
  4. address: {
  5. address:'192.168.xx.xxx',
  6. port:xxxx,
  7. family:1
  8. }
  9. }, err=> {
  10. if (err) {
  11. console.log('send fail');
  12. return;
  13. }
  14. console.log('send success');
  15. })

send

send(options: UDPSendOptions): Promise<void>

通过UDPSocket连接发送数据。使用Promise方式作为异步方法。

发送数据前,需要先调用UDPSocket.bind()绑定IP地址和端口。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

options

UDPSendOptions

UDPSocket发送参数,参考UDPSendOptions

错误码:

错误码ID

错误信息

401

Parameter error.

201

Permission denied.

返回值:

类型

说明

Promise<void>

以Promise形式返回UDPSocket连接发送数据的结果。

示例:

  1. let udp = socket.constructUDPSocketInstance();
  2. let promise = udp.send({
  3. data:'Hello, server!',
  4. address: {
  5. address:'192.168.xx.xxx',
  6. port:xxxx,
  7. family:1
  8. }
  9. });
  10. promise.then(() => {
  11. console.log('send success');
  12. }).catch(err => {
  13. console.log('send fail');
  14. });

close

close(callback: AsyncCallback<void>): void

关闭UDPSocket连接。使用callback方式作为异步方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

callback

AsyncCallback<void>

回调函数。

示例:

  1. let udp = socket.constructUDPSocketInstance();
  2. udp.close(err => {
  3. if (err) {
  4. console.log('close fail');
  5. return;
  6. }
  7. console.log('close success');
  8. })

close

close(): Promise<void>

关闭UDPSocket连接。使用Promise方式作为异步方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

返回值:

类型

说明

Promise<void>

以Promise形式返回关闭UDPSocket连接的结果。

示例:

  1. let udp = socket.constructUDPSocketInstance();
  2. let promise = udp.close();
  3. promise.then(() => {
  4. console.log('close success');
  5. }).catch(err => {
  6. console.log('close fail');
  7. });

getState

getState(callback: AsyncCallback<SocketStateBase>): void

获取UDPSocket状态。使用callback方式作为异步方法。

说明

bind方法调用成功后,才可调用此方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

callback

AsyncCallback<SocketStateBase>

回调函数。

错误码:

错误码ID

错误信息

201

Permission denied.

示例:

  1. let udp = socket.constructUDPSocketInstance();
  2. udp.bind({address: '192.168.xx.xxx', port: xxxx, family: 1}, err => {
  3. if (err) {
  4. console.log('bind fail');
  5. return;
  6. }
  7. console.log('bind success');
  8. udp.getState((err, data) => {
  9. if (err) {
  10. console.log('getState fail');
  11. return;
  12. }
  13. console.log('getState success:' + JSON.stringify(data));
  14. })
  15. })

getState

getState(): Promise<SocketStateBase>

获取UDPSocket状态。使用Promise方式作为异步方法。

说明

bind方法调用成功后,才可调用此方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

返回值:

类型

说明

Promise<SocketStateBase>

以Promise形式返回获取UDPSocket状态的结果。

示例:

  1. let udp = socket.constructUDPSocketInstance();
  2. udp.bind({address: '192.168.xx.xxx', port: xxxx, family: 1}, err => {
  3. if (err) {
  4. console.log('bind fail');
  5. return;
  6. }
  7. console.log('bind success');
  8. let promise = udp.getState();
  9. promise.then(data => {
  10. console.log('getState success:' + JSON.stringify(data));
  11. }).catch(err => {
  12. console.log('getState fail');
  13. });
  14. })

setExtraOptions

setExtraOptions(options: UDPExtraOptions, callback: AsyncCallback<void>): void

设置UDPSocket连接的其他属性。使用callback方式作为异步方法。

说明

bind方法调用成功后,才可调用此方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

options

UDPExtraOptions

UDPSocket连接的其他属性,参考UDPExtraOptions

callback

AsyncCallback<void>

回调函数。

错误码:

错误码ID

错误信息

401

Parameter error.

201

Permission denied.

示例:

  1. let udp = socket.constructUDPSocketInstance();
  2. udp.bind({address:'192.168.xx.xxx', port:xxxx, family:1}, err=> {
  3. if (err) {
  4. console.log('bind fail');
  5. return;
  6. }
  7. console.log('bind success');
  8. udp.setExtraOptions({
  9. receiveBufferSize:1000,
  10. sendBufferSize:1000,
  11. reuseAddress:false,
  12. socketTimeout:6000,
  13. broadcast:true
  14. }, err=> {
  15. if (err) {
  16. console.log('setExtraOptions fail');
  17. return;
  18. }
  19. console.log('setExtraOptions success');
  20. })
  21. })

setExtraOptions

setExtraOptions(options: UDPExtraOptions): Promise<void>

设置UDPSocket连接的其他属性。使用Promise方式作为异步方法。

说明

bind方法调用成功后,才可调用此方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

options

UDPExtraOptions

UDPSocket连接的其他属性,参考UDPExtraOptions

返回值:

类型

说明

Promise<void>

以Promise形式返回设置UDPSocket连接的其他属性的结果。

错误码:

错误码ID

错误信息

401

Parameter error.

201

Permission denied.

示例:

  1. let udp = socket.constructUDPSocketInstance();
  2. let promise = udp.bind({address:'192.168.xx.xxx', port:xxxx, family:1});
  3. promise.then(() => {
  4. console.log('bind success');
  5. let promise1 = udp.setExtraOptions({
  6. receiveBufferSize:1000,
  7. sendBufferSize:1000,
  8. reuseAddress:false,
  9. socketTimeout:6000,
  10. broadcast:true
  11. });
  12. promise1.then(() => {
  13. console.log('setExtraOptions success');
  14. }).catch(err => {
  15. console.log('setExtraOptions fail');
  16. });
  17. }).catch(err => {
  18. console.log('bind fail');
  19. });

on('message')

on(type: 'message', callback: Callback<{message: ArrayBuffer, remoteInfo: SocketRemoteInfo}>): void

订阅UDPSocket连接的接收消息事件。使用callback方式作为异步方法。

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

type

string

订阅的事件类型。'message':接收消息事件。

callback

Callback<{message: ArrayBuffer, remoteInfo: SocketRemoteInfo}>

回调函数。

示例:

  1. let udp = socket.constructUDPSocketInstance();
  2. udp.on('message', value => {
  3. console.log("on message, message:" + value.message + ", remoteInfo:" + value.remoteInfo);
  4. });

off('message')

off(type: 'message', callback?: Callback<{message: ArrayBuffer, remoteInfo: SocketRemoteInfo}>): void

取消订阅UDPSocket连接的接收消息事件。使用callback方式作为异步方法。

说明

可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

type

string

订阅的事件类型。'message':接收消息事件。

callback

Callback<{message: ArrayBuffer, remoteInfo: SocketRemoteInfo}>

回调函数。

示例:

  1. let udp = socket.constructUDPSocketInstance();
  2. let callback = value =>{
  3. console.log("on message, message:" + value.message + ", remoteInfo:" + value.remoteInfo);
  4. }
  5. udp.on('message', callback);
  6. // 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
  7. udp.off('message', callback);
  8. udp.off('message');

on('listening' | 'close')

on(type: 'listening' | 'close', callback: Callback<void>): void

订阅UDPSocket连接的数据包消息事件或关闭事件。使用callback方式作为异步方法。

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

type

string

订阅的事件类型。

- 'listening':数据包消息事件。

- 'close':关闭事件。

callback

Callback<void>

回调函数。

示例:

  1. let udp = socket.constructUDPSocketInstance();
  2. udp.on('listening', () => {
  3. console.log("on listening success");
  4. });
  5. udp.on('close', () => {
  6. console.log("on close success" );
  7. });

off('listening' | 'close')

off(type: 'listening' | 'close', callback?: Callback<void>): void

取消订阅UDPSocket连接的数据包消息事件或关闭事件。使用callback方式作为异步方法。

说明

可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

type

string

订阅事件类型。

- 'listening':数据包消息事件。

- 'close':关闭事件。

callback

Callback<void>

回调函数。

示例:

  1. let udp = socket.constructUDPSocketInstance();
  2. let callback1 = () =>{
  3. console.log("on listening, success");
  4. }
  5. udp.on('listening', callback1);
  6. // 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
  7. udp.off('listening', callback1);
  8. udp.off('listening');
  9. let callback2 = () =>{
  10. console.log("on close, success");
  11. }
  12. udp.on('close', callback2);
  13. // 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
  14. udp.off('close', callback2);
  15. udp.off('close');

on('error')

on(type: 'error', callback: ErrorCallback): void

订阅UDPSocket连接的error事件。使用callback方式作为异步方法。

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

type

string

订阅的事件类型。'error':error事件。

callback

ErrorCallback

回调函数。

示例:

  1. let udp = socket.constructUDPSocketInstance();
  2. udp.on('error', err => {
  3. console.log("on error, err:" + JSON.stringify(err))
  4. });

off('error')

off(type: 'error', callback?: ErrorCallback): void

取消订阅UDPSocket连接的error事件。使用callback方式作为异步方法。

说明

可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

type

string

订阅的事件类型。'error':error事件。

callback

ErrorCallback

回调函数。

示例:

  1. let udp = socket.constructUDPSocketInstance();
  2. let callback = err =>{
  3. console.log("on error, err:" + JSON.stringify(err));
  4. }
  5. udp.on('error', callback);
  6. // 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
  7. udp.off('error', callback);
  8. udp.off('error');

NetAddress

目标地址信息。

系统能力:以下各项对应的系统能力均为SystemCapability.Communication.NetStack。

名称

类型

必填

说明

address

string

本地绑定的ip地址。

port

number

端口号 ,范围0~65535。如果不指定系统随机分配端口。

family

number

网络协议类型,可选类型:

- 1:IPv4

- 2:IPv6

默认为1。

UDPSendOptions

UDPSocket发送参数。

系统能力:以下各项对应的系统能力均为SystemCapability.Communication.NetStack。

名称

类型

必填

说明

data

string | ArrayBuffer7+

发送的数据。

address

NetAddress

目标地址信息。

UDPExtraOptions

UDPSocket连接的其他属性。

系统能力:以下各项对应的系统能力均为SystemCapability.Communication.NetStack。

名称

类型

必填

说明

broadcast

boolean

是否可以发送广播。默认为false。

receiveBufferSize

number

接收缓冲区大小(单位:Byte)。

sendBufferSize

number

发送缓冲区大小(单位:Byte)。

reuseAddress

boolean

是否重用地址。默认为false。

socketTimeout

number

套接字超时时间,单位毫秒(ms)。

SocketStateBase

Socket的状态信息。

系统能力:以下各项对应的系统能力均为SystemCapability.Communication.NetStack。

名称

类型

必填

说明

isBound

boolean

是否绑定。

isClose

boolean

是否关闭。

isConnected

boolean

是否连接。

SocketRemoteInfo

Socket的连接信息。

系统能力:以下各项对应的系统能力均为SystemCapability.Communication.NetStack。

名称

类型

必填

说明

address

string

本地绑定的ip地址。

family

string

网络协议类型,可选类型:

- IPv4

- IPv6

默认为IPv4。

port

number

端口号,范围0~65535。

size

number

服务器响应信息的字节长度。

UDP 错误码说明

UDP 其余错误码映射形式为:2301000 + Linux内核错误码。

错误码的详细介绍参见Socket错误码

socket.constructTCPSocketInstance

constructTCPSocketInstance(): TCPSocket

创建一个TCPSocket对象。

系统能力:SystemCapability.Communication.NetStack

返回值:

类型

说明

TCPSocket

返回一个TCPSocket对象。

示例:

  1. let tcp = socket.constructTCPSocketInstance();

TCPSocket

TCPSocket连接。在调用TCPSocket的方法前,需要先通过socket.constructTCPSocketInstance创建TCPSocket对象。

bind

bind(address: NetAddress, callback: AsyncCallback<void>): void

绑定IP地址和端口,端口可以指定或由系统随机分配。使用callback方法作为异步方法。

说明

客户端使用该方法创建socket。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

address

NetAddress

目标地址信息,参考NetAddress

callback

AsyncCallback<void>

回调函数。

错误码:

错误码ID

错误信息

401

Parameter error.

201

Permission denied.

示例:

  1. let tcp = socket.constructTCPSocketInstance();
  2. tcp.bind({ address: '192.168.xx.xxx', port: xxxx, family: 1 }, err => {
  3. if (err) {
  4. console.log('bind fail');
  5. return;
  6. }
  7. console.log('bind success');
  8. })

bind

bind(address: NetAddress): Promise<void>

绑定IP地址和端口,端口可以指定或由系统随机分配。使用Promise方法作为异步方法。

说明

客户端使用该方法创建socket。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

address

NetAddress

目标地址信息,参考NetAddress

返回值:

类型

说明

Promise<void>

以Promise形式返回TCPSocket绑定本机的IP地址和端口的结果。

错误码:

错误码ID

错误信息

401

Parameter error.

201

Permission denied.

示例:

  1. let tcp = socket.constructTCPSocketInstance();
  2. let promise = tcp.bind({ address: '192.168.xx.xxx', port: xxxx, family: 1 });
  3. promise.then(() => {
  4. console.log('bind success');
  5. }).catch(err => {
  6. console.log('bind fail');
  7. });

connect

connect(options: TCPConnectOptions, callback: AsyncCallback<void>): void

连接到指定的IP地址和端口。使用callback方法作为异步方法。

说明

bind方法调用成功后,才可调用此方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

options

TCPConnectOptions

TCPSocket连接的参数,参考TCPConnectOptions

callback

AsyncCallback<void>

回调函数。

错误码:

错误码ID

错误信息

401

Parameter error.

201

Permission denied.

示例:

  1. let tcp = socket.constructTCPSocketInstance();
  2. tcp.connect({ address: { address: '192.168.xx.xxx', port: xxxx, family: 1 } , timeout: 6000}, err => {
  3. if (err) {
  4. console.log('connect fail');
  5. return;
  6. }
  7. console.log('connect success');
  8. })

connect

connect(options: TCPConnectOptions): Promise<void>

连接到指定的IP地址和端口。使用promise方法作为异步方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

options

TCPConnectOptions

TCPSocket连接的参数,参考TCPConnectOptions

返回值:

类型

说明

Promise<void>

以Promise形式返回TCPSocket连接到指定的IP地址和端口的结果。

错误码:

错误码ID

错误信息

401

Parameter error.

201

Permission denied.

示例:

  1. let tcp = socket.constructTCPSocketInstance();
  2. let promise = tcp.connect({ address: {address: '192.168.xx.xxx', port: xxxx, family: 1} , timeout: 6000});
  3. promise.then(() => {
  4. console.log('connect success')
  5. }).catch(err => {
  6. console.log('connect fail');
  7. });

send

send(options: TCPSendOptions, callback: AsyncCallback<void>): void

通过TCPSocket连接发送数据。使用callback方式作为异步方法。

说明

connect方法调用成功后,才可调用此方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

options

TCPSendOptions

TCPSocket发送请求的参数,参考TCPSendOptions

callback

AsyncCallback<void>

回调函数。

错误码:

错误码ID

错误信息

401

Parameter error.

201

Permission denied.

示例:

  1. let tcp = socket.constructTCPSocketInstance();
  2. let promise = tcp.connect({ address: {address: '192.168.xx.xxx', port: xxxx, family: 1} , timeout: 6000});
  3. promise.then(() => {
  4. console.log('connect success');
  5. tcp.send({
  6. data:'Hello, server!'
  7. },err => {
  8. if (err) {
  9. console.log('send fail');
  10. return;
  11. }
  12. console.log('send success');
  13. })
  14. }).catch(err => {
  15. console.log('connect fail');
  16. });

send

send(options: TCPSendOptions): Promise<void>

通过TCPSocket连接发送数据。使用Promise方式作为异步方法。

说明

connect方法调用成功后,才可调用此方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

options

TCPSendOptions

TCPSocket发送请求的参数,参考TCPSendOptions

返回值:

类型

说明

Promise<void>

以Promise形式返回通过TCPSocket连接发送数据的结果。

错误码:

错误码ID

错误信息

401

Parameter error.

201

Permission denied.

示例:

  1. let tcp = socket.constructTCPSocketInstance();
  2. let promise1 = tcp.connect({ address: {address: '192.168.xx.xxx', port: xxxx, family: 1} , timeout: 6000});
  3. promise1.then(() => {
  4. console.log('connect success');
  5. let promise2 = tcp.send({
  6. data:'Hello, server!'
  7. });
  8. promise2.then(() => {
  9. console.log('send success');
  10. }).catch(err => {
  11. console.log('send fail');
  12. });
  13. }).catch(err => {
  14. console.log('connect fail');
  15. });

close

close(callback: AsyncCallback<void>): void

关闭TCPSocket连接。使用callback方式作为异步方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

callback

AsyncCallback<void>

回调函数。

错误码:

错误码ID

错误信息

201

Permission denied.

示例:

  1. let tcp = socket.constructTCPSocketInstance();
  2. tcp.close(err => {
  3. if (err) {
  4. console.log('close fail');
  5. return;
  6. }
  7. console.log('close success');
  8. })

close

close(): Promise<void>

关闭TCPSocket连接。使用Promise方式作为异步方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

返回值:

类型

说明

Promise<void>

以Promise形式返回关闭TCPSocket连接的结果。

错误码:

错误码ID

错误信息

201

Permission denied.

示例:

  1. let tcp = socket.constructTCPSocketInstance();
  2. let promise = tcp.close();
  3. promise.then(() => {
  4. console.log('close success');
  5. }).catch(err => {
  6. console.log('close fail');
  7. });

getRemoteAddress

getRemoteAddress(callback: AsyncCallback<NetAddress>): void

获取对端Socket地址。使用callback方式作为异步方法。

说明

connect方法调用成功后,才可调用此方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

callback

AsyncCallback<NetAddress>

回调函数。

错误码:

错误码ID

错误信息

201

Permission denied.

示例:

  1. let tcp = socket.constructTCPSocketInstance();
  2. let promise = tcp.connect({ address: {address: '192.168.xx.xxx', port: xxxx, family: 1} , timeout: 6000});
  3. promise.then(() => {
  4. console.log('connect success');
  5. tcp.getRemoteAddress((err, data) => {
  6. if (err) {
  7. console.log('getRemoteAddressfail');
  8. return;
  9. }
  10. console.log('getRemoteAddresssuccess:' + JSON.stringify(data));
  11. })
  12. }).catch(err => {
  13. console.log('connect fail');
  14. });

getRemoteAddress

getRemoteAddress(): Promise<NetAddress>

获取对端Socket地址。使用Promise方式作为异步方法。

说明

connect方法调用成功后,才可调用此方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

返回值:

类型

说明

Promise<NetAddress>

以Promise形式返回获取对端socket地址的结果。

错误码:

错误码ID

错误信息

201

Permission denied.

示例:

  1. let tcp = socket.constructTCPSocketInstance();
  2. let promise1 = tcp.connect({ address: {address: '192.168.xx.xxx', port: xxxx, family: 1} , timeout: 6000});
  3. promise1.then(() => {
  4. console.log('connect success');
  5. let promise2 = tcp.getRemoteAddress();
  6. promise2.then(() => {
  7. console.log('getRemoteAddress success');
  8. }).catch(err => {
  9. console.log('getRemoteAddressfail');
  10. });
  11. }).catch(err => {
  12. console.log('connect fail');
  13. });

getState

getState(callback: AsyncCallback<SocketStateBase>): void

获取TCPSocket状态。使用callback方式作为异步方法。

说明

bind或connect方法调用成功后,才可调用此方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

callback

AsyncCallback<SocketStateBase>

回调函数。

错误码:

错误码ID

错误信息

201

Permission denied.

示例:

  1. let tcp = socket.constructTCPSocketInstance();
  2. let promise = tcp.connect({ address: {address: '192.168.xx.xxx', port: xxxx, family: 1} , timeout: 6000});
  3. promise.then(() => {
  4. console.log('connect success');
  5. tcp.getState((err, data) => {
  6. if (err) {
  7. console.log('getState fail');
  8. return;
  9. }
  10. console.log('getState success:' + JSON.stringify(data));
  11. });
  12. }).catch(err => {
  13. console.log('connect fail');
  14. });

getState

getState(): Promise<SocketStateBase>

获取TCPSocket状态。使用Promise方式作为异步方法。

说明

bind或connect方法调用成功后,才可调用此方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

返回值:

类型

说明

Promise<SocketStateBase>

以Promise形式返回获取TCPSocket状态的结果。

错误码:

错误码ID

错误信息

201

Permission denied.

示例:

  1. let tcp = socket.constructTCPSocketInstance();
  2. let promise = tcp.connect({ address: {address: '192.168.xx.xxx', port: xxxx, family: 1} , timeout: 6000});
  3. promise.then(() => {
  4. console.log('connect success');
  5. let promise1 = tcp.getState();
  6. promise1.then(() => {
  7. console.log('getState success');
  8. }).catch(err => {
  9. console.log('getState fail');
  10. });
  11. }).catch(err => {
  12. console.log('connect fail');
  13. });

setExtraOptions

setExtraOptions(options: TCPExtraOptions, callback: AsyncCallback<void>): void

设置TCPSocket连接的其他属性。使用callback方式作为异步方法。

说明

bind或connect方法调用成功后,才可调用此方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

options

TCPExtraOptions

TCPSocket连接的其他属性,参考TCPExtraOptions

callback

AsyncCallback<void>

回调函数。

错误码:

错误码ID

错误信息

401

Parameter error.

201

Permission denied.

示例:

  1. let tcp = socket.constructTCPSocketInstance();
  2. let promise = tcp.connect({ address: {address: '192.168.xx.xxx', port: xxxx, family: 1} , timeout: 6000});
  3. promise.then(() => {
  4. console.log('connect success');
  5. tcp.setExtraOptions({
  6. keepAlive: true,
  7. OOBInline: true,
  8. TCPNoDelay: true,
  9. socketLinger: { on:true, linger:10 },
  10. receiveBufferSize: 1000,
  11. sendBufferSize: 1000,
  12. reuseAddress: true,
  13. socketTimeout: 3000,
  14. },err => {
  15. if (err) {
  16. console.log('setExtraOptions fail');
  17. return;
  18. }
  19. console.log('setExtraOptions success');
  20. });
  21. }).catch(err => {
  22. console.log('connect fail');
  23. });

setExtraOptions

setExtraOptions(options: TCPExtraOptions): Promise<void>

设置TCPSocket连接的其他属性,使用Promise方式作为异步方法。

说明

bind或connect方法调用成功后,才可调用此方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

options

TCPExtraOptions

TCPSocket连接的其他属性,参考TCPExtraOptions

返回值:

类型

说明

Promise<void>

以Promise形式返回设置TCPSocket连接的其他属性的结果。

错误码:

错误码ID

错误信息

401

Parameter error.

201

Permission denied.

示例:

  1. let tcp = socket.constructTCPSocketInstance();
  2. let promise = tcp.connect({ address: {address: '192.168.xx.xxx', port: xxxx, family: 1} , timeout: 6000});
  3. promise.then(() => {
  4. console.log('connect success');
  5. let promise1 = tcp.setExtraOptions({
  6. keepAlive: true,
  7. OOBInline: true,
  8. TCPNoDelay: true,
  9. socketLinger: { on:true, linger:10 },
  10. receiveBufferSize: 1000,
  11. sendBufferSize: 1000,
  12. reuseAddress: true,
  13. socketTimeout: 3000,
  14. });
  15. promise1.then(() => {
  16. console.log('setExtraOptions success');
  17. }).catch(err => {
  18. console.log('setExtraOptions fail');
  19. });
  20. }).catch(err => {
  21. console.log('connect fail');
  22. });

on('message')

on(type: 'message', callback: Callback<{message: ArrayBuffer, remoteInfo: SocketRemoteInfo}>): void

订阅TCPSocket连接的接收消息事件。使用callback方式作为异步方法。

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

type

string

订阅的事件类型。'message':接收消息事件。

callback

Callback<{message: ArrayBuffer, remoteInfo: SocketRemoteInfo}>

回调函数。

示例:

  1. let tcp = socket.constructTCPSocketInstance();
  2. tcp.on('message', value => {
  3. console.log("on message, message:" + value.message + ", remoteInfo:" + value.remoteInfo)
  4. });

off('message')

off(type: 'message', callback?: Callback<{message: ArrayBuffer, remoteInfo: SocketRemoteInfo}>): void

取消订阅TCPSocket连接的接收消息事件。使用callback方式作为异步方法。

说明

可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

type

string

订阅的事件类型。'message':接收消息事件。

callback

Callback<{message: ArrayBuffer, remoteInfo: SocketRemoteInfo}>

回调函数。

示例:

  1. let tcp = socket.constructTCPSocketInstance();
  2. let callback = value =>{
  3. console.log("on message, message:" + value.message + ", remoteInfo:" + value.remoteInfo);
  4. }
  5. tcp.on('message', callback);
  6. // 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
  7. tcp.off('message', callback);
  8. tcp.off('message');

on('connect' | 'close')

on(type: 'connect' | 'close', callback: Callback<void>): void

订阅TCPSocket的连接事件或关闭事件。使用callback方式作为异步方法。

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

type

string

订阅的事件类型。

- 'connect':连接事件。

- 'close':关闭事件。

callback

Callback<void>

回调函数。

示例:

  1. let tcp = socket.constructTCPSocketInstance();
  2. tcp.on('connect', () => {
  3. console.log("on connect success")
  4. });
  5. tcp.on('close', data => {
  6. console.log("on close success")
  7. });

off('connect' | 'close')

off(type: 'connect' | 'close', callback?: Callback<void>): void

取消订阅TCPSocket的连接事件或关闭事件。使用callback方式作为异步方法。

说明

可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

type

string

订阅的事件类型。

- 'connect':连接事件。

- 'close':关闭事件。

callback

Callback<void>

回调函数。

示例:

  1. let tcp = socket.constructTCPSocketInstance();
  2. let callback1 = () =>{
  3. console.log("on connect success");
  4. }
  5. tcp.on('connect', callback1);
  6. // 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
  7. tcp.off('connect', callback1);
  8. tcp.off('connect');
  9. let callback2 = () =>{
  10. console.log("on close success");
  11. }
  12. tcp.on('close', callback2);
  13. // 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
  14. tcp.off('close', callback2);
  15. tcp.off('close');

on('error')

on(type: 'error', callback: ErrorCallback): void

订阅TCPSocket连接的error事件。使用callback方式作为异步方法。

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

type

string

订阅的事件类型。'error':error事件。

callback

ErrorCallback

回调函数。

示例:

  1. let tcp = socket.constructTCPSocketInstance();
  2. tcp.on('error', err => {
  3. console.log("on error, err:" + JSON.stringify(err))
  4. });

off('error')

off(type: 'error', callback?: ErrorCallback): void

取消订阅TCPSocket连接的error事件。使用callback方式作为异步方法。

说明

可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

type

string

订阅的事件类型。'error':error事件。

callback

ErrorCallback

回调函数。

示例:

  1. let tcp = socket.constructTCPSocketInstance();
  2. let callback = err =>{
  3. console.log("on error, err:" + JSON.stringify(err));
  4. }
  5. tcp.on('error', callback);
  6. // 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
  7. tcp.off('error', callback);
  8. tcp.off('error');

TCPConnectOptions

TCPSocket连接的参数。

系统能力:以下各项对应的系统能力均为SystemCapability.Communication.NetStack。

名称

类型

必填

说明

address

NetAddress

绑定的地址以及端口。

timeout

number

超时时间,单位毫秒(ms)。

TCPSendOptions

TCPSocket发送请求的参数。

系统能力:以下各项对应的系统能力均为SystemCapability.Communication.NetStack。

名称

类型

必填

说明

data

string| ArrayBuffer7+

发送的数据。

encoding

string

字符编码(UTF-8,UTF-16BE,UTF-16LE,UTF-16,US-AECII,ISO-8859-1),默认为UTF-8。

TCPExtraOptions

TCPSocket连接的其他属性。

系统能力:以下各项对应的系统能力均为SystemCapability.Communication.NetStack。

名称

类型

必填

说明

keepAlive

boolean

是否保持连接。默认为false。

OOBInline

boolean

是否为OOB内联。默认为false。

TCPNoDelay

boolean

TCPSocket连接是否无时延。默认为false。

socketLinger

Object

socket是否继续逗留。

- on:是否逗留(true:逗留;false:不逗留)。

- linger:逗留时长,单位毫秒(ms),取值范围为0~65535。

当入参on设置为true时,才需要设置。

receiveBufferSize

number

接收缓冲区大小(单位:Byte)。

sendBufferSize

number

发送缓冲区大小(单位:Byte)。

reuseAddress

boolean

是否重用地址。默认为false。

socketTimeout

number

套接字超时时间,单位毫秒(ms)。

TCP 错误码说明

TCP 其余错误码映射形式为:2301000 + Linux内核错误码。

错误码的详细介绍参见Socket错误码

socket.constructTLSSocketInstance9+

constructTLSSocketInstance(): TLSSocket

创建并返回一个TLSSocket对象。

系统能力:SystemCapability.Communication.NetStack

返回值:

类型

说明

TLSSocket

返回一个TLSSocket对象。

示例:

  1. let tls = socket.constructTLSSocketInstance();

TLSSocket9+

TLSSocket连接。在调用TLSSocket的方法前,需要先通过socket.constructTLSSocketInstance创建TLSSocket对象。

bind9+

bind(address: NetAddress, callback: AsyncCallback<void>): void

绑定IP地址和端口。使用callback方法作为异步方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

address

NetAddress

目标地址信息,参考NetAddress

callback

AsyncCallback<void>

回调函数。成功返回TLSSocket绑定本机的IP地址和端口的结果。 失败返回错误码,错误信息。

错误码:

错误码ID

错误信息

401

Parameter error.

201

Permission denied.

2303198

Address already in use.

2300002

System internal error.

示例:

  1. tls.bind({address: '192.168.xx.xxx', port: xxxx, family: 1}, err => {
  2. if (err) {
  3. console.log('bind fail');
  4. return;
  5. }
  6. console.log('bind success');
  7. });

bind9+

bind(address: NetAddress): Promise<void>

绑定IP地址和端口。使用Promise方法作为异步方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

address

NetAddress

目标地址信息,参考NetAddress

返回值:

类型

说明

Promise<void>

以Promise形式返回TLSSocket绑定本机的IP地址和端口的结果。失败返回错误码,错误信息。

错误码:

错误码ID

错误信息

401

Parameter error.

201

Permission denied.

2303198

Address already in use.

2300002

System internal error.

示例:

  1. let promise = tls.bind({address: '192.168.xx.xxx', port: xxxx, family: 1});
  2. promise.then(() => {
  3. console.log('bind success');
  4. }).catch(err => {
  5. console.log('bind fail');
  6. });

getState9+

getState(callback: AsyncCallback<SocketStateBase>): void

在TLSSocket的bind成功之后,获取TLSSocket状态。使用callback方式作为异步方法。

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

callback

AsyncCallback<SocketStateBase>

回调函数。成功返回TLSSocket状态,失败返回错误码,错误信息。

错误码:

错误码ID

错误信息

2303188

Socket operation on non-socket.

2300002

System internal error.

示例:

  1. let promise = tls.bind({address: '192.168.xx.xxx', port: xxxx, family: 1}, err => {
  2. if (err) {
  3. console.log('bind fail');
  4. return;
  5. }
  6. console.log('bind success');
  7. });
  8. tls.getState((err, data) => {
  9. if (err) {
  10. console.log('getState fail');
  11. return;
  12. }
  13. console.log('getState success:' + JSON.stringify(data));
  14. });

getState9+

getState(): Promise<SocketStateBase>

在TLSSocket的bind成功之后,获取TLSSocket状态。使用Promise方式作为异步方法。

系统能力:SystemCapability.Communication.NetStack

返回值:

类型

说明

Promise<SocketStateBase>

以Promise形式返回获取TLSSocket状态的结果。失败返回错误码,错误信息。

错误码:

错误码ID

错误信息

2303188

Socket operation on non-socket.

2300002

System internal error.

示例:

  1. tls.bind({address: '192.168.xx.xxx', port: xxxx, family: 1}, err => {
  2. if (err) {
  3. console.log('bind fail');
  4. return;
  5. }
  6. console.log('bind success');
  7. });
  8. let promise = tls.getState();
  9. promise.then(() => {
  10. console.log('getState success');
  11. }).catch(err => {
  12. console.log('getState fail');
  13. });

setExtraOptions9+

setExtraOptions(options: TCPExtraOptions, callback: AsyncCallback<void>): void

在TLSSocket的bind成功之后,设置TCPSocket连接的其他属性。使用callback方式作为异步方法。

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

options

TCPExtraOptions

TCPSocket连接的其他属性,参考TCPExtraOptions

callback

AsyncCallback<void>

回调函数。成功返回设置TCPSocket连接的其他属性的结果,失败返回错误码,错误信息。

错误码:

错误码ID

错误信息

401

Parameter error.

2303188

Socket operation on non-socket.

2300002

System internal error.

示例:

  1. tls.bind({address: '192.168.xx.xxx', port: xxxx, family: 1}, err => {
  2. if (err) {
  3. console.log('bind fail');
  4. return;
  5. }
  6. console.log('bind success');
  7. });
  8. tls.setExtraOptions({
  9. keepAlive: true,
  10. OOBInline: true,
  11. TCPNoDelay: true,
  12. socketLinger: { on:true, linger:10 },
  13. receiveBufferSize: 1000,
  14. sendBufferSize: 1000,
  15. reuseAddress: true,
  16. socketTimeout: 3000,
  17. },err => {
  18. if (err) {
  19. console.log('setExtraOptions fail');
  20. return;
  21. }
  22. console.log('setExtraOptions success');
  23. });

setExtraOptions9+

setExtraOptions(options: TCPExtraOptions): Promise<void>

在TLSSocket的bind成功之后,设置TCPSocket连接的其他属性,使用Promise方式作为异步方法。

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

options

TCPExtraOptions

TCPSocket连接的其他属性,参考TCPExtraOptions

返回值:

类型

说明

Promise<void>

以Promise形式返回设置TCPSocket连接的其他属性的结果。失败返回错误码,错误信息。

错误码:

错误码ID

错误信息

401

Parameter error.

2303188

Socket operation on non-socket.

2300002

System internal error.

示例:

  1. tls.bind({address: '192.168.xx.xxx', port: xxxx, family: 1}, err => {
  2. if (err) {
  3. console.log('bind fail');
  4. return;
  5. }
  6. console.log('bind success');
  7. });
  8. let promise = tls.setExtraOptions({
  9. keepAlive: true,
  10. OOBInline: true,
  11. TCPNoDelay: true,
  12. socketLinger: { on:true, linger:10 },
  13. receiveBufferSize: 1000,
  14. sendBufferSize: 1000,
  15. reuseAddress: true,
  16. socketTimeout: 3000,
  17. });
  18. promise.then(() => {
  19. console.log('setExtraOptions success');
  20. }).catch(err => {
  21. console.log('setExtraOptions fail');
  22. });

connect9+

connect(options: TLSConnectOptions, callback: AsyncCallback<void>): void

在TLSSocket上bind成功之后,进行通信连接,并创建和初始化TLS会话,实现建立连接过程,启动与服务器的TLS/SSL握手,实现数据传输功能,使用callback方式作为异步方法。

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

options

TLSConnectOptions

TLSSocket连接所需要的参数。

callback

AsyncCallback<void>

回调函数,成功无返回,失败返回错误码,错误信息。

错误码:

错误码ID

错误信息

401

Parameter error.

2303104

Interrupted system call.

2303109

Bad file number.

2303111

Resource temporarily unavailable try again.

2303188

Socket operation on non-socket.

2303191

Protocol wrong type for socket.

2303198

Address already in use.

2303199

Cannot assign requested address.

2303210

Connection timed out.

2303501

SSL is null.

2303502

Error in tls reading.

2303503

Error in tls writing

2303505

Error occurred in the tls system call.

2303506

Error clearing tls connection.

2300002

System internal error.

示例:

  1. let tlsTwoWay = socket.constructTLSSocketInstance(); // Two way authentication
  2. tlsTwoWay.bind({address: '192.168.xxx.xxx', port: 8080, family: 1}, err => {
  3. if (err) {
  4. console.log('bind fail');
  5. return;
  6. }
  7. console.log('bind success');
  8. });
  9. let options = {
  10. ALPNProtocols: ["spdy/1", "http/1.1"],
  11. address: {
  12. address: "192.168.xx.xxx",
  13. port: 8080,
  14. family: 1,
  15. },
  16. secureOptions: {
  17. key: "xxxx",
  18. cert: "xxxx",
  19. ca: ["xxxx"],
  20. password: "xxxx",
  21. protocols: [socket.Protocol.TLSv12],
  22. useRemoteCipherPrefer: true,
  23. signatureAlgorithms: "rsa_pss_rsae_sha256:ECDSA+SHA256",
  24. cipherSuite: "AES256-SHA256",
  25. },
  26. };
  27. tlsTwoWay.connect(options, (err, data) => {
  28. console.error("connect callback error"+err);
  29. console.log(JSON.stringify(data));
  30. });
  31. let tlsOneWay = socket.constructTLSSocketInstance(); // One way authentication
  32. tlsOneWay.bind({address: '192.168.xxx.xxx', port: 8080, family: 1}, err => {
  33. if (err) {
  34. console.log('bind fail');
  35. return;
  36. }
  37. console.log('bind success');
  38. });
  39. let oneWayOptions = {
  40. address: {
  41. address: "192.168.xxx.xxx",
  42. port: 8080,
  43. family: 1,
  44. },
  45. secureOptions: {
  46. ca: ["xxxx","xxxx"],
  47. cipherSuite: "AES256-SHA256",
  48. },
  49. };
  50. tlsOneWay.connect(oneWayOptions, (err, data) => {
  51. console.error("connect callback error"+err);
  52. console.log(JSON.stringify(data));
  53. });

connect9+

connect(options: TLSConnectOptions): Promise<void>

在TLSSocket上bind成功之后,进行通信连接,并创建和初始化TLS会话,实现建立连接过程,启动与服务器的TLS/SSL握手,实现数据传输功能,该连接包括两种认证方式,单向认证与双向认证,使用Promise方式作为异步方法。

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

options

TLSConnectOptions

连接所需要的参数。

返回值:

类型

说明

Promise<void>

以Promise形式返回,成功无返回,失败返回错误码,错误信息。

错误码:

错误码ID

错误信息

401

Parameter error.

2303104

Interrupted system call.

2303109

Bad file number.

2303111

Resource temporarily unavailable try again.

2303188

Socket operation on non-socket.

2303191

Protocol wrong type for socket.

2303198

Address already in use.

2303199

Cannot assign requested address.

2303210

Connection timed out.

2303501

SSL is null.

2303502

Error in tls reading.

2303503

Error in tls writing

2303505

Error occurred in the tls system call.

2303506

Error clearing tls connection.

2300002

System internal error.

示例:

  1. let tlsTwoWay = socket.constructTLSSocketInstance(); // Two way authentication
  2. tlsTwoWay.bind({address: '192.168.xxx.xxx', port: 8080, family: 1}, err => {
  3. if (err) {
  4. console.log('bind fail');
  5. return;
  6. }
  7. console.log('bind success');
  8. });
  9. let options = {
  10. ALPNProtocols: ["spdy/1", "http/1.1"],
  11. address: {
  12. address: "xxxx",
  13. port: 8080,
  14. family: 1,
  15. },
  16. secureOptions: {
  17. key: "xxxx",
  18. cert: "xxxx",
  19. ca: ["xxxx"],
  20. password: "xxxx",
  21. protocols: [socket.Protocol.TLSv12],
  22. useRemoteCipherPrefer: true,
  23. signatureAlgorithms: "rsa_pss_rsae_sha256:ECDSA+SHA256",
  24. cipherSuite: "AES256-SHA256",
  25. },
  26. };
  27. tlsTwoWay.connect(options).then(data => {
  28. console.log(JSON.stringify(data));
  29. }).catch(err => {
  30. console.error(err);
  31. });
  32. let tlsOneWay = socket.constructTLSSocketInstance(); // One way authentication
  33. tlsOneWay.bind({address: '192.168.xxx.xxx', port: 8080, family: 1}, err => {
  34. if (err) {
  35. console.log('bind fail');
  36. return;
  37. }
  38. console.log('bind success');
  39. });
  40. let oneWayOptions = {
  41. address: {
  42. address: "192.168.xxx.xxx",
  43. port: 8080,
  44. family: 1,
  45. },
  46. secureOptions: {
  47. ca: ["xxxx","xxxx"],
  48. cipherSuite: "AES256-SHA256",
  49. },
  50. };
  51. tlsOneWay.connect(oneWayOptions).then(data => {
  52. console.log(JSON.stringify(data));
  53. }).catch(err => {
  54. console.error(err);
  55. });

getRemoteAddress9+

getRemoteAddress(callback: AsyncCallback<NetAddress>): void

在TLSSocket通信连接成功之后,获取对端Socket地址。使用callback方式作为异步方法。

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

callback

AsyncCallback<NetAddress>

回调函数。成功返回对端的socket地址,失败返回错误码,错误信息。

错误码:

错误码ID

错误信息

2303188

Socket operation on non-socket.

2300002

System internal error.

示例:

  1. tls.getRemoteAddress((err, data) => {
  2. if (err) {
  3. console.log('getRemoteAddress fail');
  4. return;
  5. }
  6. console.log('getRemoteAddress success:' + JSON.stringify(data));
  7. });

getRemoteAddress9+

getRemoteAddress(): Promise<NetAddress>

在TLSSocket通信连接成功之后,获取对端Socket地址。使用Promise方式作为异步方法。

系统能力:SystemCapability.Communication.NetStack

返回值:

类型

说明

Promise<NetAddress>

以Promise形式返回获取对端socket地址的结果。失败返回错误码,错误信息。

错误码:

错误码ID

错误信息

2303188

Socket operation on non-socket.

2300002

System internal error.

示例:

  1. let promise = tls.getRemoteAddress();
  2. promise.then(() => {
  3. console.log('getRemoteAddress success');
  4. }).catch(err => {
  5. console.log('getRemoteAddress fail');
  6. });

getCertificate9+

getCertificate(callback: AsyncCallback<X509CertRawData>): void

在TLSSocket通信连接成功之后,获取本地的数字证书,该接口只适用于双向认证时,使用callback方式作为异步方法。

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

callback

AsyncCallback<X509CertRawData>

回调函数,成功返回本地的证书,失败返回错误码,错误信息。

错误码:

错误码ID

错误信息

2303501

SSL is null.

2303504

Error looking up x509.

2300002

System internal error.

示例:

  1. tls.getCertificate((err, data) => {
  2. if (err) {
  3. console.log("getCertificate callback error = " + err);
  4. } else {
  5. console.log("getCertificate callback = " + data);
  6. }
  7. });

getCertificate9+

getCertificate():Promise<X509CertRawData>

在TLSSocket通信连接之后,获取本地的数字证书,该接口只适用于双向认证时,使用Promise方式作为异步方法。

系统能力:SystemCapability.Communication.NetStack

返回值:

类型

说明

Promise<X509CertRawData>

以Promise形式返回本地的数字证书的结果。失败返回错误码,错误信息。

错误码:

错误码ID

错误信息

2303501

SSL is null.

2303504

Error looking up x509.

2300002

System internal error.

示例:

  1. tls.getCertificate().then(data => {
  2. console.log(data);
  3. }).catch(err => {
  4. console.error(err);
  5. });

getRemoteCertificate9+

getRemoteCertificate(callback: AsyncCallback<X509CertRawData>): void

在TLSSocket通信连接成功之后,获取服务端的数字证书,使用callback方式作为异步方法。

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

callback

AsyncCallback<X509CertRawData>

回调函数,返回服务端的证书。失败返回错误码,错误信息。

错误码:

错误码ID

错误信息

2303501

SSL is null.

2300002

System internal error.

示例:

  1. tls.getRemoteCertificate((err, data) => {
  2. if (err) {
  3. console.log("getRemoteCertificate callback error = " + err);
  4. } else {
  5. console.log("getRemoteCertificate callback = " + data);
  6. }
  7. });

getRemoteCertificate9+

getRemoteCertificate():Promise<X509CertRawData>

在TLSSocket通信连接成功之后,获取服务端的数字证书,使用Promise方式作为异步方法。

系统能力:SystemCapability.Communication.NetStack

返回值:

类型

说明

Promise<X509CertRawData>

以Promise形式返回服务端的数字证书的结果。失败返回错误码,错误信息。

错误码:

错误码ID

错误信息

2303501

SSL is null.

2300002

System internal error.

示例:

  1. tls.getRemoteCertificate().then(data => {
  2. console.log(data);
  3. }).catch(err => {
  4. console.error(err);
  5. });

getProtocol9+

getProtocol(callback: AsyncCallback<string>): void

在TLSSocket通信连接成功之后,获取通信的协议版本,使用callback方式作为异步方法。

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

callback

AsyncCallback<string>

回调函数,返回通信的协议。失败返回错误码,错误信息。

错误码:

错误码ID

错误信息

2303501

SSL is null.

2303505

Error occurred in the tls system call.

2300002

System internal error.

示例:

  1. tls.getProtocol((err, data) => {
  2. if (err) {
  3. console.log("getProtocol callback error = " + err);
  4. } else {
  5. console.log("getProtocol callback = " + data);
  6. }
  7. });

getProtocol9+

getProtocol():Promise<string>

在TLSSocket通信连接成功之后,获取通信的协议版本,使用Promise方式作为异步方法。

系统能力:SystemCapability.Communication.NetStack

返回值:

类型

说明

Promise<string>

以Promise形式返回通信的协议。失败返回错误码,错误信息。

错误码:

错误码ID

错误信息

2303501

SSL is null.

2303505

Error occurred in the tls system call.

2300002

System internal error.

示例:

  1. tls.getProtocol().then(data => {
  2. console.log(data);
  3. }).catch(err => {
  4. console.error(err);
  5. });

getCipherSuite9+

getCipherSuite(callback: AsyncCallback<Array<string>>): void

在TLSSocket通信连接成功之后,获取通信双方协商后的加密套件,使用callback方式作为异步方法。

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

callback

AsyncCallback<Array<string>>

回调函数,返回通信双方支持的加密套件。 失败返回错误码,错误信息。

错误码:

错误码ID

错误信息

2303501

SSL is null.

2303502

Error in tls reading.

2303505

Error occurred in the tls system call.

2300002

System internal error.

示例:

  1. tls.getCipherSuite((err, data) => {
  2. if (err) {
  3. console.log("getCipherSuite callback error = " + err);
  4. } else {
  5. console.log("getCipherSuite callback = " + data);
  6. }
  7. });

getCipherSuite9+

getCipherSuite(): Promise<Array<string>>

在TLSSocket通信连接成功之后,获取通信双方协商后的加密套件,使用Promise方式作为异步方法。

系统能力:SystemCapability.Communication.NetStack

返回值:

类型

说明

Promise<Array<string>>

以Promise形式返回通信双方支持的加密套件。失败返回错误码,错误信息。

错误码:

错误码ID

错误信息

2303501

SSL is null.

2303502

Error in tls reading.

2303505

Error occurred in the tls system call.

2300002

System internal error.

示例:

  1. tls.getCipherSuite().then(data => {
  2. console.log('getCipherSuite success:' + JSON.stringify(data));
  3. }).catch(err => {
  4. console.error(err);
  5. });

getSignatureAlgorithms9+

getSignatureAlgorithms(callback: AsyncCallback<Array<string>>): void

在TLSSocket通信连接成功之后,获取通信双方协商后签名算法,该接口只适配双向认证模式下,使用callback方式作为异步方法。

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

callback

AsyncCallback<Array<string>>

回调函数,返回双方支持的签名算法。

错误码:

错误码ID

错误信息

2303501

SSL is null.

2300002

System internal error.

示例:

  1. tls.getSignatureAlgorithms((err, data) => {
  2. if (err) {
  3. console.log("getSignatureAlgorithms callback error = " + err);
  4. } else {
  5. console.log("getSignatureAlgorithms callback = " + data);
  6. }
  7. });

getSignatureAlgorithms9+

getSignatureAlgorithms(): Promise<Array<string>>

在TLSSocket通信连接成功之后,获取通信双方协商后的签名算法,该接口只适配双向认证模式下,使用Promise方式作为异步方法。

系统能力:SystemCapability.Communication.NetStack

返回值:

类型

说明

Promise<Array<string>>

以Promise形式返回获取到的双方支持的签名算法。

错误码:

错误码ID

错误信息

2303501

SSL is null.

2300002

System internal error.

示例:

  1. tls.getSignatureAlgorithms().then(data => {
  2. console.log("getSignatureAlgorithms success" + data);
  3. }).catch(err => {
  4. console.error(err);
  5. });

send9+

send(data: string, callback: AsyncCallback<void>): void

在TLSSocket通信连接成功之后,向服务端发送消息,使用callback方式作为异步方法。

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

data

string

发送的数据内容。

callback

AsyncCallback<void>

回调函数,返回TLSSocket发送数据的结果。失败返回错误码,错误信息。

错误码:

错误码ID

错误信息

401

Parameter error.

2303501

SSL is null.

2303503

Error in tls writing

2303505

Error occurred in the tls system call.

2303506

Error clearing tls connection.

2300002

System internal error.

示例:

  1. tls.send("xxxx", (err) => {
  2. if (err) {
  3. console.log("send callback error = " + err);
  4. } else {
  5. console.log("send success");
  6. }
  7. });

send9+

send(data: string): Promise<void>

在TLSSocket通信连接成功之后,向服务端发送消息,使用Promise方式作为异步方法。

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

data

string

发送的数据内容。

错误码:

错误码ID

错误信息

401

Parameter error.

2303501

SSL is null.

2303503

Error in tls writing

2303505

Error occurred in the tls system call.

2303506

Error clearing tls connection.

2300002

System internal error.

返回值:

类型

说明

Promise<void>

以Promise形式返回,返回TLSSocket发送数据的结果。失败返回错误码,错误信息。

示例:

  1. tls.send("xxxx").then(() =>{
  2. console.log("send success");
  3. }).catch(err => {
  4. console.error(err);
  5. });

close9+

close(callback: AsyncCallback<void>): void

在TLSSocket通信连接成功之后,断开连接,使用callback方式作为异步方法。

系统能力:SystemCapability.Communication.NetStack

参数:

参数名

类型

必填

说明

callback

AsyncCallback<void>

回调函数,成功返回TLSSocket关闭连接的结果。 失败返回错误码,错误信息。

错误码:

错误码ID

错误信息

2303501

SSL is null.

2303505

Error occurred in the tls system call.

2303506

Error clearing tls connection.

2300002

System internal error.

示例:

  1. tls.close((err) => {
  2. if (err) {
  3. console.log("close callback error = " + err);
  4. } else {
  5. console.log("close success");
  6. }
  7. });

close9+

close(): Promise<void>

在TLSSocket通信连接成功之后,断开连接,使用Promise方式作为异步方法。

系统能力:SystemCapability.Communication.NetStack

返回值:

类型

说明

Promise<void>

以Promise形式返回,返回TLSSocket关闭连接的结果。失败返回错误码,错误信息。

错误码:

错误码ID

错误信息

2303501

SSL is null.

2303505

Error occurred in the tls system call.

2303506

Error clearing tls connection.

2300002

System internal error.

示例:

  1. tls.close().then(() =>{
  2. console.log("close success");
  3. }).catch(err => {
  4. console.error(err);
  5. });

TLSConnectOptions9+

TLS连接的操作。

系统能力:SystemCapability.Communication.NetStack

名称

类型

必填

说明

address

NetAddress

网关地址。

secureOptions

TLSSecureOptions

TLS安全相关操作。

ALPNProtocols

Array<string>

ALPN协议。

TLSSecureOptions9+

TLS安全相关操作,其中ca证书为必选参数,其他参数为可选参数。当本地证书cert和私钥key不为空时,开启双向验证模式。cert和key其中一项为空时,开启单向验证模式。

系统能力:SystemCapability.Communication.NetStack

名称

类型

必填

说明

ca

string | Array<string>

服务端的ca证书,用于认证校验服务端的数字证书。

cert

string

本地客户端的数字证书。

key

string

本地数字证书的私钥。

password

string

读取私钥的密码。

protocols

Protocol |Array<Protocol>

TLS的协议版本。

useRemoteCipherPrefer

boolean

优先使用对等方的密码套件。

signatureAlgorithms

string

通信过程中的签名算法。

cipherSuite

string

通信过程中的加密套件。

Protocol9+

TLS通信的协议版本。

系统能力:SystemCapability.Communication.NetStack

名称

说明

TLSv12

"TLSv1.2"

使用TLSv1.2协议通信。

TLSv13

"TLSv1.3"

使用TLSv1.3协议通信。

X509CertRawData9+

存储证书的数据。

系统能力:SystemCapability.Communication.NetStack

类型

说明

cryptoFramework.EncodingBlob

存储证书的数据和编码格式

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号