鸿蒙开发网络管理:【@ohos.net.socket (Socket连接)】

Socket连接

 说明:

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

导入模块

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

socket.constructUDPSocketInstance

constructUDPSocketInstance(): UDPSocket

创建一个UDPSocket对象。

系统能力:SystemCapability.Communication.NetStack

返回值:

类型说明
[UDPSocket]返回一个UDPSocket对象。

示例:

let udp = socket.constructUDPSocketInstance();

UDPSocket

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

bind

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

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

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名类型必填说明
address[NetAddress]目标地址信息,参考[NetAddress]。
callbackAsyncCallback回调函数。

示例:

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

bind

bind(address: NetAddress): Promise

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

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名类型必填说明
address[NetAddress]目标地址信息,参考[NetAddress]。

返回值:

类型说明
Promise以Promise形式异步返回UDPSocket绑定的结果。

示例:

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

send

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

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

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

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名类型必填说明
options[UDPSendOptions]UDPSocket发送参数,参考[UDPSendOptions]。
callbackAsyncCallback回调函数。

示例:

let udp = socket.constructUDPSocketInstance();
udp.send({data:'Hello, server!',address: {address:'192.168.xx.xxx',port:xxxx,family:1}
}, err=> {if (err) {console.log('send fail');return;}console.log('send success');
})

send

send(options: UDPSendOptions): Promise

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

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

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名类型必填说明
options[UDPSendOptions]UDPSocket发送参数,参考[UDPSendOptions]。

返回值:

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

示例:

let udp = socket.constructUDPSocketInstance();
let promise = udp.send({data:'Hello, server!',address: {address:'192.168.xx.xxx',port:xxxx,family:1}
});
promise.then(() => {console.log('send success');
}).catch(err => {console.log('send fail');
});

close

close(callback: AsyncCallback): void

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

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名类型必填说明
callbackAsyncCallback回调函数。

示例:

let udp = socket.constructUDPSocketInstance();
udp.close(err => {if (err) {console.log('close fail');return;}console.log('close success');
})

close

close(): Promise

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

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

返回值:

类型说明
Promise以Promise形式返回关闭UDPSocket连接的结果。

示例:

let udp = socket.constructUDPSocketInstance();
let promise = udp.close();
promise.then(() => {console.log('close success');
}).catch(err => {console.log('close fail');
});

getState

getState(callback: AsyncCallback): void

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

 说明:  [bind]方法调用成功后,才可调用此方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名类型必填说明
callbackAsyncCallback<[SocketStateBase]>回调函数。

示例:

let udp = socket.constructUDPSocketInstance();
udp.bind({address: '192.168.xx.xxx', port: xxxx, family: 1}, err => {if (err) {console.log('bind fail');return;}console.log('bind success');udp.getState((err, data) => {if (err) {console.log('getState fail');return;}console.log('getState success:' + JSON.stringify(data));})
})

getState

getState(): Promise

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

 说明:  [bind]方法调用成功后,才可调用此方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

返回值:

类型说明
Promise<[SocketStateBase]>以Promise形式返回获取UDPSocket状态的结果。

示例:

let udp = socket.constructUDPSocketInstance();
udp.bind({address: '192.168.xx.xxx', port: xxxx, family: 1}, err => {if (err) {console.log('bind fail');return;}console.log('bind success');let promise = udp.getState({});promise.then(data => {console.log('getState success:' + JSON.stringify(data));}).catch(err => {console.log('getState fail');});
})

setExtraOptions

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

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

 说明:  [bind]方法调用成功后,才可调用此方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名类型必填说明
options[UDPExtraOptions]UDPSocket连接的其他属性,参考[UDPExtraOptions]。
callbackAsyncCallback回调函数。

示例:

let udp = socket.constructUDPSocketInstance();
udp.bind({address:'192.168.xx.xxx', port:xxxx, family:1}, err=> {if (err) {console.log('bind fail');return;}console.log('bind success');udp.setExtraOptions({receiveBufferSize:1000,sendBufferSize:1000,reuseAddress:false,socketTimeout:6000,broadcast:true}, err=> {if (err) {console.log('setExtraOptions fail');return;}console.log('setExtraOptions success');})
})

setExtraOptions

setExtraOptions(options: UDPExtraOptions): Promise

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

 说明:  [bind]方法调用成功后,才可调用此方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名类型必填说明
options[UDPExtraOptions]UDPSocket连接的其他属性,参考[UDPExtraOptions]。

返回值:

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

示例:

let udp = socket.constructUDPSocketInstance();
let promise = udp.bind({address:'192.168.xx.xxx', port:xxxx, family:1});
promise.then(() => {console.log('bind success');let promise1 = udp.setExtraOptions({receiveBufferSize:1000,sendBufferSize:1000,reuseAddress:false,socketTimeout:6000,broadcast:true});promise1.then(() => {console.log('setExtraOptions success');}).catch(err => {console.log('setExtraOptions fail');});
}).catch(err => {console.log('bind fail');
});

on(‘message’)

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

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

系统能力:SystemCapability.Communication.NetStack

参数:

参数名类型必填说明
typestring订阅的事件类型。‘message’:接收消息事件。
callbackCallback<{message: ArrayBuffer, remoteInfo: [SocketRemoteInfo]}>回调函数。

示例:

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

off(‘message’)

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

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

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

系统能力:SystemCapability.Communication.NetStack

参数:

参数名类型必填说明
typestring订阅的事件类型。‘message’:接收消息事件。
callbackCallback<{message: ArrayBuffer, remoteInfo: [SocketRemoteInfo]}>回调函数。

示例:

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

on(‘listening’ | ‘close’)

on(type: ‘listening’ | ‘close’, callback: Callback): void

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

系统能力:SystemCapability.Communication.NetStack

参数:

参数名类型必填说明
typestring订阅的事件类型。 - ‘listening’:数据包消息事件。 - ‘close’:关闭事件。
callbackCallback回调函数。

示例:

let udp = socket.constructUDPSocketInstance();
udp.on('listening', () => {console.log("on listening success");
});
udp.on('close', () => {console.log("on close success" );
});

off(‘listening’ | ‘close’)

off(type: ‘listening’ | ‘close’, callback?: Callback): void

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

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

系统能力:SystemCapability.Communication.NetStack

参数:

参数名类型必填说明
typestring订阅事件类型。 - ‘listening’:数据包消息事件。 - ‘close’:关闭事件。
callbackCallback回调函数。

示例:

let udp = socket.constructUDPSocketInstance();
let callback1 = () =>{console.log("on listening, success");
}
udp.on('listening', callback1);
// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
udp.off('listening', callback1);
udp.off('listening');
let callback2 = () =>{console.log("on close, success");
}
udp.on('close', callback2);
// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
udp.off('close', callback2);
udp.off('close');

on(‘error’)

on(type: ‘error’, callback: ErrorCallback): void

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

系统能力:SystemCapability.Communication.NetStack

参数:

参数名类型必填说明
typestring订阅的事件类型。‘error’:error事件。
callbackErrorCallback回调函数。

示例:

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

off(‘error’)

off(type: ‘error’, callback?: ErrorCallback): void

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

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

系统能力:SystemCapability.Communication.NetStack

参数:

参数名类型必填说明
typestring订阅的事件类型。‘error’:error事件。
callbackErrorCallback回调函数。

示例:

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

NetAddress

目标地址信息。

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

参数名类型必填说明
addressstring本地绑定的ip地址。
portnumber端口号 ,范围0~65535。如果不指定系统随机分配端口。
familynumber网络协议类型,可选类型: - 1:IPv4 - 2:IPv6 默认为1。

UDPSendOptions

UDPSocket发送参数。

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

参数名类型必填说明
datastringArrayBuffer8+
address[NetAddress]目标地址信息。

UDPExtraOptions

UDPSocket连接的其他属性。

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

参数名类型必填说明
broadcastboolean是否可以发送广播。默认为false。
receiveBufferSizenumber接收缓冲区大小(单位:Byte)。
sendBufferSizenumber发送缓冲区大小(单位:Byte)。
reuseAddressboolean是否重用地址。默认为false。
socketTimeoutnumber套接字超时时间,单位毫秒(ms)。

SocketStateBase

Socket的状态信息。

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

参数名类型必填说明
isBoundboolean是否绑定。
isCloseboolean是否关闭。
isConnectedboolean是否连接。

SocketRemoteInfo

Socket的连接信息。

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

参数名类型必填说明
addressstring本地绑定的ip地址。
familystring网络协议类型,可选类型: - IPv4 - IPv6 默认为IPv4。
portnumber端口号,范围0~65535。
sizenumber服务器响应信息的字节长度。

socket.constructTCPSocketInstance

constructTCPSocketInstance(): TCPSocket

创建一个TCPSocket对象。

系统能力:SystemCapability.Communication.NetStack

返回值:

类型说明
[TCPSocket返回一个TCPSocket对象。

示例:

let tcp = socket.constructTCPSocketInstance();

TCPSocket

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

bind

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

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

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名类型必填说明
address[NetAddress]目标地址信息,参考[NetAddress]。
callbackAsyncCallback回调函数。

示例:

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

bind

bind(address: NetAddress): Promise

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

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名类型必填说明
address[NetAddress]目标地址信息,参考[NetAddress]。

返回值:

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

示例:

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

connect

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

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

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名类型必填说明
options[TCPConnectOptions]TCPSocket连接的参数,参考[TCPConnectOptions]。
callbackAsyncCallback回调函数。

示例:

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

connect

connect(options: TCPConnectOptions): Promise

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

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名类型必填说明
options[TCPConnectOptionsTCPSocket连接的参数,参考[TCPConnectOptions]。

返回值:

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

示例:

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

send

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

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

 说明:  [connect]方法调用成功后,才可调用此方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名类型必填说明
options[TCPSendOptions]TCPSocket发送请求的参数,参考[TCPSendOptions]。
callbackAsyncCallback回调函数。

示例:

let tcp = socket.constructTCPSocketInstance();
let promise = tcp.connect({ address: {address: '192.168.xx.xxx', port: xxxx, family: 1} , timeout: 6000});
promise.then(() => {console.log('connect success');tcp.send({data:'Hello, server!'},err => {if (err) {console.log('send fail');return;}console.log('send success');})
}).catch(err => {console.log('connect fail');
});

send

send(options: TCPSendOptions): Promise

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

 说明:  [connect]方法调用成功后,才可调用此方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名类型必填说明
options[TCPSendOptions]TCPSocket发送请求的参数,参考[TCPSendOptions]。

返回值:

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

示例:

let tcp = socket.constructTCPSocketInstance();
let promise1 = tcp.connect({ address: {address: '192.168.xx.xxx', port: xxxx, family: 1} , timeout: 6000});
promise1.then(() => {console.log('connect success');let promise2 = tcp.send({data:'Hello, server!'});promise2.then(() => {console.log('send success');}).catch(err => {console.log('send fail');});
}).catch(err => {console.log('connect fail');
});

close

close(callback: AsyncCallback): void

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

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名类型必填说明
callbackAsyncCallback回调函数。

示例:

let tcp = socket.constructTCPSocketInstance();
tcp.close(err => {if (err) {console.log('close fail');return;}console.log('close success');
})

close

close(): Promise

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

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

返回值:

类型说明
Promise以Promise形式返回关闭TCPSocket连接的结果。

示例:

let tcp = socket.constructTCPSocketInstance();
let promise = tcp.close();
promise.then(() => {console.log('close success');
}).catch(err => {console.log('close fail');
});

getRemoteAddress

getRemoteAddress(callback: AsyncCallback): void

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

 说明:  [connect]方法调用成功后,才可调用此方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名类型必填说明
callbackAsyncCallback<[NetAddress](>回调函数。

示例:

let tcp = socket.constructTCPSocketInstance();
let promise = tcp.connect({ address: {address: '192.168.xx.xxx', port: xxxx, family: 1} , timeout: 6000});
promise.then(() => {console.log('connect success');tcp.getRemoteAddress((err, data) => {if (err) {console.log('getRemoteAddressfail');return;}console.log('getRemoteAddresssuccess:' + JSON.stringify(data));})
}).catch(err => {console.log('connect fail');
});

getRemoteAddress

getRemoteAddress(): Promise

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

 说明:  [connect]方法调用成功后,才可调用此方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

返回值:

类型说明
Promise<[NetAddress]>以Promise形式返回获取对端socket地址的结果。

示例:

let tcp = socket.constructTCPSocketInstance();
let promise1 = tcp.connect({ address: {address: '192.168.xx.xxx', port: xxxx, family: 1} , timeout: 6000});
promise1.then(() => {console.log('connect success');let promise2 = tcp.getRemoteAddress();promise2.then(() => {console.log('getRemoteAddress success:' + JSON.stringify(data));}).catch(err => {console.log('getRemoteAddressfail');});
}).catch(err => {console.log('connect fail');
});

getState

getState(callback: AsyncCallback): void

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

 说明:  [bind]或[connect]方法调用成功后,才可调用此方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名类型必填说明
callbackAsyncCallback<[SocketStateBase]>回调函数。

示例:

let tcp = socket.constructTCPSocketInstance();
let promise = tcp.connect({ address: {address: '192.168.xx.xxx', port: xxxx, family: 1} , timeout: 6000});
promise.then(() => {console.log('connect success');tcp.getState((err, data) => {if (err) {console.log('getState fail');return;}console.log('getState success:' + JSON.stringify(data));});
}).catch(err => {console.log('connect fail');
});

getState

getState(): Promise

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

 说明:  [bind]或[connect]方法调用成功后,才可调用此方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

返回值:

类型说明
Promise<[SocketStateBase]>以Promise形式返回获取TCPSocket状态的结果。

示例:

let tcp = socket.constructTCPSocketInstance();
let promise = tcp.connect({ address: {address: '192.168.xx.xxx', port: xxxx, family: 1} , timeout: 6000});
promise.then(() => {console.log('connect success');let promise1 = tcp.getState();promise1.then(() => {console.log('getState success:' + JSON.stringify(data));}).catch(err => {console.log('getState fail');});
}).catch(err => {console.log('connect fail');
});

setExtraOptions

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

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

 说明:  [bind]或[connect]方法调用成功后,才可调用此方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名类型必填说明
options[TCPExtraOptions]TCPSocket连接的其他属性,参考[TCPExtraOptions]。
callbackAsyncCallback回调函数。

示例:

let tcp = socket.constructTCPSocketInstance();
let promise = tcp.connect({ address: {address: '192.168.xx.xxx', port: xxxx, family: 1} , timeout: 6000});
promise.then(() => {console.log('connect success');tcp.setExtraOptions({keepAlive: true,OOBInline: true,TCPNoDelay: true,socketLinger: { on:true, linger:10 },receiveBufferSize: 1000,sendBufferSize: 1000,reuseAddress: true,socketTimeout: 3000,},err => {if (err) {console.log('setExtraOptions fail');return;}console.log('setExtraOptions success');});
}).catch(err => {console.log('connect fail');
});

setExtraOptions

setExtraOptions(options: TCPExtraOptions): Promise

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

 说明:  [bind]或[connect]方法调用成功后,才可调用此方法。

需要权限:ohos.permission.INTERNET

系统能力:SystemCapability.Communication.NetStack

参数:

参数名类型必填说明
options[TCPExtraOptions]TCPSocket连接的其他属性,参考[TCPExtraOptions]。

返回值:

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

示例:

let tcp = socket.constructTCPSocketInstance();
let promise = tcp.connect({ address: {address: '192.168.xx.xxx', port: xxxx, family: 1} , timeout: 6000});
promise.then(() => {console.log('connect success');let promise1 = tcp.setExtraOptions({keepAlive: true,OOBInline: true,TCPNoDelay: true,socketLinger: { on:true, linger:10 },receiveBufferSize: 1000,sendBufferSize: 1000,reuseAddress: true,socketTimeout: 3000,});promise1.then(() => {console.log('setExtraOptions success');}).catch(err => {console.log('setExtraOptions fail');});
}).catch(err => {console.log('connect fail');
});

on(‘message’)

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

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

系统能力:SystemCapability.Communication.NetStack

参数:

参数名类型必填说明
typestring订阅的事件类型。‘message’:接收消息事件。
callbackCallback<{message: ArrayBuffer, remoteInfo: [SocketRemoteInfo]}>回调函数。

示例:

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

off(‘message’)

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

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

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

系统能力:SystemCapability.Communication.NetStack

参数:

参数名类型必填说明
typestring订阅的事件类型。‘message’:接收消息事件。
callbackCallback<{message: ArrayBuffer, remoteInfo: [SocketRemoteInfo]}>回调函数。

示例:

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

on(‘connect’ | ‘close’)

on(type: ‘connect’ | ‘close’, callback: Callback): void

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

系统能力:SystemCapability.Communication.NetStack

参数:

参数名类型必填说明
typestring订阅的事件类型。 - ‘connect’:连接事件。 - ‘close’:关闭事件。
callbackCallback回调函数。

示例:

let tcp = socket.constructTCPSocketInstance();
tcp.on('connect', () => {console.log("on connect success")
});
tcp.on('close', data => {console.log("on close success")
});

off(‘connect’ | ‘close’)

off(type: ‘connect’ | ‘close’, callback?: Callback): void

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

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

系统能力:SystemCapability.Communication.NetStack

参数:

参数名类型必填说明
typestring订阅的事件类型。 - ‘connect’:连接事件。 - ‘close’:关闭事件。
callbackCallback回调函数。

示例:

let tcp = socket.constructTCPSocketInstance();
let callback1 = () =>{console.log("on connect success");
}
tcp.on('connect', callback1);
// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
tcp.off('connect', callback1);
tcp.off('connect');
let callback2 = () =>{console.log("on close success");
}
tcp.on('close', callback2);
// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
tcp.off('close', callback2);
tcp.off('close');

on(‘error’)

on(type: ‘error’, callback: ErrorCallback): void

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

系统能力:SystemCapability.Communication.NetStack

参数:

参数名类型必填说明
typestring订阅的事件类型。‘error’:error事件。
callbackErrorCallback回调函数。

示例:

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

off(‘error’)

off(type: ‘error’, callback?: ErrorCallback): void

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

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

系统能力:SystemCapability.Communication.NetStack

参数:

参数名类型必填说明
typestring订阅的事件类型。‘error’:error事件。
callbackErrorCallback回调函数。

示例:

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

TCPConnectOptions

TCPSocket连接的参数。

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

参数名类型必填说明
address[NetAddress]绑定的地址以及端口。
timeoutnumber超时时间,单位毫秒(ms)。

TCPSendOptions

TCPSocket发送请求的参数。

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

参数名类型必填说明
datastringArrayBuffer8+
encodingstring字符编码(UTF-8,UTF-16BE,UTF-16LE,UTF-16,US-AECII,ISO-8859-1),默认为UTF-8。

TCPExtraOptions

TCPSocket连接的其他属性。

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

参数名类型必填说明
keepAliveboolean是否保持连接。默认为false。
OOBInlineboolean是否为OOB内联。默认为false。
TCPNoDelaybooleanTCPSocket连接是否无时延。默认为false。
socketLingerObjectsocket是否继续逗留。 - on:是否逗留(true:逗留;false:不逗留)。 - linger:逗留时长,单位毫秒(ms),取值范围为0~65535。 当入参on设置为true时,才需要设置。
receiveBufferSizenumber接收缓冲区大小(单位:Byte)。
sendBufferSizenumber发送缓冲区大小(单位:Byte)。
reuseAddressboolean是否重用地址。默认为false。
socketTimeoutnumber套接字超时时间,单位毫秒(ms)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/29500.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

已解决:geecg Column ‘id‘ in order clause is ambiguous

报错&#xff1a;Column id in order clause is ambiguous&#xff1b; MyBatis关联查询&#xff0c;相同字段名冲突&#xff0c;sql语句已经使用别名但仍然报错。 分析&#xff1a;写mapper映射文件时&#xff0c;在写到一对一关联&#xff0c;一对多关联时&#xff0c;由于两…

从11个视角看全球Rust程序员4/4:深度解读JetBrains最新报告

讲动人的故事,写懂人的代码 8 Rust程序员最喜欢用什么工具调试程序? 用println!或dbg!宏来调试一下 2022年:55%2023年:55%在IDE里玩玩UI调试 2022年:27%2023年:29%在控制台里调试调试 2022年:11%2023年:10%不调试,任性 2022年:5%2023年:6%有其他奇思妙想 2022年:1%…

骁龙662_高通SM6115主要参数_高通模块方案定制

骁龙662&#xff08;SM6115&#xff09;采用了全新的44 Kryo 260 CPU架构&#xff0c;由四核Cortex-A73(高达2.0 GHz)和四核Cortex-A53(高达1.8 GHz)组成。这种架构的设计使得骁龙662在性能上相较于上一代产品有了显著的提升&#xff0c;为用户提供了更快的运行速度和更流畅的使…

安卓TextView控件实现下划线

效果展示 这里需要使用到LayerDrawable&#xff0c;对应于<layer-list>标签。在drawable目录下新建一个text_underline.xml文件&#xff0c;text_underline.xml的代码如下&#xff1a; <?xml version"1.0" encoding"utf-8"?> <layer-lis…

TS安装及JS转换

第一步&#xff1a;先安装好node.js&#xff0c;可以在官方下载或我们提供压缩包直接安装好node.js Node.js的官方网站是下载 | Node.js 中文网 下载对应系统的版本。我们提供是64位。安装好后调出dos命名&#xff0c;输入 npm确认下有没有安装好。 第二步&#xff1a;安装cnpm…

机器学习笔记——无监督学习下的k均值聚类

k均值聚类算法原理 目标是将样本分类 原理&#xff1a;首先随机选择k何点作为中心&#xff0c;然后计算每一个点到中心的聚类&#xff0c;然后计算到每个中心的距离&#xff0c;选择到中心最短距离的那个中心所在的类进行归类&#xff0c;然后更新中心点&#xff0c;一直重复。…

vivado PKGPIN_NIBBLE

描述 PKGPIN_NIBBLE是PKGPIN_BYTEGROUP的一部分。参见PKGPIN_BYTEGROUP&#xff0c; 第122页了解该对象的描述。 相关对象 PKGPIN_BYTEGROUP和PKGPIN_NIBBLE与IO_BANK、PACKAGE_PIN和 PORT&#xff0c;如前所述。此外&#xff0c;每个PKGPIN_NIBBLE都与 Xilinx设备。您可以使用…

【触想智能】工业显示器定制时需要注意的重点问题

随着工业自动化的不断发展&#xff0c;工业显示器越来越重要。不同于普通的娱乐和商业应用&#xff0c;工业显示器需要更加耐用、可靠、安全&#xff0c;并且满足特定的工业环境和应用需求。 因此&#xff0c;仔细考虑和选择适合自己的工业显示器至关重要。本文将介绍一些您在进…

React 中的 ErrorBoundary

在 React 中&#xff0c;如果不做任何控制&#xff0c;当组件出现异常时&#xff0c;React 渲染就会停止&#xff0c;页面出现白屏&#xff0c;这种体验很不好。例如当用户输入某些非法数据&#xff0c;而前端都没有进行校验&#xff0c;页面出现白屏。这种情况下&#xff0c;最…

CUDA C权威编程指南 第4章 全局内存

一、CUDA内存模型概述 1. CUDA内存模型 对于程序员来说&#xff0c;一般有两种类型的存储器&#xff1a; 可编程的&#xff1a;你需要显式地控制哪些数据存放在可编程内存中 不可编程的&#xff1a;你不能决定数据的存放位置&#xff0c;程序将自动生成存放位置以获得良好…

基于SpringBoot+Vue会所产后护理系统设计和实现

基于SpringBootVue会所产后护理系统设计和实现 &#x1f345; 作者主页 网顺技术团队 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; &#x1f345; 文末获取源码联系方式 &#x1f4dd; &#x1f345; 查看下方微信号获取联系方式 承接各种定制系统 &#…

179海关接口源码,跨境报关商城+多平台搭建+多终端支持

在跨境贸易中&#xff0c;报关是一个非常重要的环节。而179海关接口源码提供了一种方便快捷的方式来实现跨境报关的功能。它还支持多平台搭建和多终端支持&#xff0c;让整个报关流程更加高效和便捷。 1. 179海关接口源码的功能 179海关接口源码提供了多种功能&#xff0c;其…

Gradle 自动化项目构建-Gradle 核心之 Project

一、前言 从明面上看&#xff0c;Gradle 是一款强大的构建工具&#xff0c;但 Gradle 不仅仅是一款强大的构建工具&#xff0c;它更像是一个编程框架。Gradle 的组成可以细分为如下三个方面&#xff1a; groovy 核心语法&#xff1a;包括 groovy 基本语法、闭包、数据结构、面…

基于Java的二手手机回收平台系统

开头语&#xff1a; 你好呀&#xff0c;我是计算机学长猫哥&#xff01;如果有相关需求&#xff0c;文末可以找到我的联系方式。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;JavaJSPServlet 工具&#xff1a;IDEA/Eclipse、Navicat、Maven 系统展…

257、二叉树的所有路径

给定一个二叉树&#xff0c;返回所有从根节点到叶子节点的路径。 说明: 叶子节点是指没有子节点的节点。 代码如下&#xff1a; class Solution { public:void traversal(TreeNode* cur, vector<int>& path, vector<string> &result){path.push_back(cur…

Vue3-国足18强赛抽签

Vue3国足18强赛抽签 国足遇到这个对阵&#xff0c;能顺利出现吗&#xff1f; 1、系统演示 Vue3模拟国足18强赛抽签 2、关键代码 开始抽签 <script setup> import FenDang from "/components/chouqian/FenDang.vue"; import {ref} from "vue";le…

Android 配置蓝牙遥控器键值

文章目录 篇头一、规格书二、红外按键配置三、蓝牙按键配置3.1 查看设备号3.1.1 方式一&#xff1a;dumpsys input3.1.2 方式二&#xff1a; cat /proc/bus/input/devices 3.2 配置kl文件3.2.1 方案商原始配置3.2.2 Generic.kl 文件3.2.3 重映射蓝牙按键3.2.4 完成 Vendor\_568…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 智能成绩表(100分) - 三语言AC题解(Python/Java/Cpp)

&#x1f36d; 大家好这里是清隆学长 &#xff0c;一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 &#x1f4bb; ACM银牌&#x1f948;| 多次AK大厂笔试 &#xff5c; 编程一对一辅导 &#x1f44f; 感谢大家的订阅➕ 和 喜欢&#x1f497; &#x1f…

Docker MySQL Shutting down mysqld

6月初至6月15日发现MySQL无故停机多次&#xff0c;导致系统无法使用。接下来各种日志查看&#xff0c;排查原因。先附上一份Docker种MySQL的日志的截图。 一、根据Docker的日志初步估计是数据库内存飙升&#xff0c;从而被系统杀掉进程 查询Linux系统日志&#xff0c;在宿主机…

安卓Context上下文

目录 前言一、Context简介二、Application Context2.1 Application Context的创建过程2.2 Application Context的获取过程 三、Activity的Context创建过程四、Service的Context创建过程 前言 Context也就是上下文对象&#xff0c;是Android较为常用的类&#xff0c;但是对于Co…