精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙開(kāi)發(fā)網(wǎng)絡(luò)管理:ohos.net.socket之Socket連接

jf_46214456 ? 來(lái)源:jf_46214456 ? 作者:jf_46214456 ? 2024-06-19 09:26 ? 次閱讀

Socket連接

說(shuō)明:
開(kāi)發(fā)前請(qǐng)熟悉鴻蒙開(kāi)發(fā)指導(dǎo)文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]
本模塊首批接口從API version 7開(kāi)始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨(dú)標(biāo)記接口的起始版本。

導(dǎo)入模塊

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

socket.constructUDPSocketInstance

constructUDPSocketInstance(): UDPSocket

創(chuàng)建一個(gè)UDPSocket對(duì)象。

系統(tǒng)能力 :SystemCapability.Communication.NetStack

返回值:

類型說(shuō)明
[UDPSocket]返回一個(gè)UDPSocket對(duì)象。

示例:

let udp = socket.constructUDPSocketInstance();

UDPSocket

UDPSocket連接。在調(diào)用UDPSocket的方法前,需要先通過(guò)[socket.constructUDPSocketInstance]創(chuàng)建UDPSocket對(duì)象。

bind

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

綁定IP地址和端口,端口可以指定或由系統(tǒng)隨機(jī)分配。使用callback方式作為異步方法。

需要權(quán)限 :ohos.permission.INTERNET

系統(tǒng)能力 :SystemCapability.Communication.NetStack

參數(shù)

參數(shù)名類型必填說(shuō)明
address[NetAddress]目標(biāo)地址信息,參考[NetAddress]。
callbackAsyncCallback回調(diào)函數(shù)。

示例:

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地址和端口,端口可以指定或由系統(tǒng)隨機(jī)分配。使用Promise方式作為異步方法。

需要權(quán)限 :ohos.permission.INTERNET

系統(tǒng)能力 :SystemCapability.Communication.NetStack

參數(shù):

參數(shù)名類型必填說(shuō)明
address[NetAddress]目標(biāo)地址信息,參考[NetAddress]。

返回值:

類型說(shuō)明
Promise以Promise形式異步返回UDPSocket綁定的結(jié)果。

示例:

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

通過(guò)UDPSocket連接發(fā)送數(shù)據(jù)。使用callback方式作為異步方法。

發(fā)送數(shù)據(jù)前,需要先調(diào)用[UDPSocket.bind()]綁定IP地址和端口。

需要權(quán)限 :ohos.permission.INTERNET

系統(tǒng)能力 :SystemCapability.Communication.NetStack

參數(shù):

參數(shù)名類型必填說(shuō)明
options[UDPSendOptions]UDPSocket發(fā)送參數(shù),參考[UDPSendOptions]。
callbackAsyncCallback回調(diào)函數(shù)。

示例:

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

通過(guò)UDPSocket連接發(fā)送數(shù)據(jù)。使用Promise方式作為異步方法。

發(fā)送數(shù)據(jù)前,需要先調(diào)用[UDPSocket.bind()]綁定IP地址和端口。

需要權(quán)限 :ohos.permission.INTERNET

系統(tǒng)能力 :SystemCapability.Communication.NetStack

參數(shù):

參數(shù)名類型必填說(shuō)明
options[UDPSendOptions]UDPSocket發(fā)送參數(shù),參考[UDPSendOptions]。

返回值:

類型說(shuō)明
Promise以Promise形式返回UDPSocket連接發(fā)送數(shù)據(jù)的結(jié)果。

示例:

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

關(guān)閉UDPSocket連接。使用callback方式作為異步方法。

需要權(quán)限 :ohos.permission.INTERNET

系統(tǒng)能力 :SystemCapability.Communication.NetStack

參數(shù):

參數(shù)名類型必填說(shuō)明
callbackAsyncCallback回調(diào)函數(shù)。

示例:

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

close

close(): Promise

關(guān)閉UDPSocket連接。使用Promise方式作為異步方法。

需要權(quán)限 :ohos.permission.INTERNET

系統(tǒng)能力 :SystemCapability.Communication.NetStack

返回值:

類型說(shuō)明
Promise以Promise形式返回關(guān)閉UDPSocket連接的結(jié)果。

示例:

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狀態(tài)。使用callback方式作為異步方法。

說(shuō)明: [bind]方法調(diào)用成功后,才可調(diào)用此方法。

需要權(quán)限 :ohos.permission.INTERNET

系統(tǒng)能力 :SystemCapability.Communication.NetStack

參數(shù):

參數(shù)名類型必填說(shuō)明
callbackAsyncCallback<[SocketStateBase]>回調(diào)函數(shù)。

示例:

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狀態(tài)。使用Promise方式作為異步方法。

說(shuō)明: [bind]方法調(diào)用成功后,才可調(diào)用此方法。

需要權(quán)限 :ohos.permission.INTERNET

系統(tǒng)能力 :SystemCapability.Communication.NetStack

返回值:

類型說(shuō)明
Promise<[SocketStateBase]>以Promise形式返回獲取UDPSocket狀態(tài)的結(jié)果。

示例:

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

設(shè)置UDPSocket連接的其他屬性。使用callback方式作為異步方法。

說(shuō)明: [bind]方法調(diào)用成功后,才可調(diào)用此方法。

需要權(quán)限 :ohos.permission.INTERNET

系統(tǒng)能力 :SystemCapability.Communication.NetStack

參數(shù):

參數(shù)名類型必填說(shuō)明
options[UDPExtraOptions]UDPSocket連接的其他屬性,參考[UDPExtraOptions]。
callbackAsyncCallback回調(diào)函數(shù)。

示例:

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

設(shè)置UDPSocket連接的其他屬性。使用Promise方式作為異步方法。

說(shuō)明: [bind]方法調(diào)用成功后,才可調(diào)用此方法。

需要權(quán)限 :ohos.permission.INTERNET

系統(tǒng)能力 :SystemCapability.Communication.NetStack

參數(shù):

參數(shù)名類型必填說(shuō)明
options[UDPExtraOptions]UDPSocket連接的其他屬性,參考[UDPExtraOptions]。

返回值:

類型說(shuō)明
Promise以Promise形式返回設(shè)置UDPSocket連接的其他屬性的結(jié)果。

示例:

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方式作為異步方法。

系統(tǒng)能力 :SystemCapability.Communication.NetStack

參數(shù):

參數(shù)名類型必填說(shuō)明
typestring訂閱的事件類型。'message':接收消息事件。
callbackCallback<{message: ArrayBuffer, remoteInfo: [SocketRemoteInfo]}>回調(diào)函數(shù)。

示例:

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方式作為異步方法。

說(shuō)明: 可以指定傳入on中的callback取消一個(gè)訂閱,也可以不指定callback清空所有訂閱。

系統(tǒng)能力 :SystemCapability.Communication.NetStack

參數(shù):

參數(shù)名類型必填說(shuō)明
typestring訂閱的事件類型。'message':接收消息事件。
callbackCallback<{message: ArrayBuffer, remoteInfo: [SocketRemoteInfo]}>回調(diào)函數(shù)。

示例:

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

on('listening' | 'close')

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

訂閱UDPSocket連接的數(shù)據(jù)包消息事件或關(guān)閉事件。使用callback方式作為異步方法。

系統(tǒng)能力 :SystemCapability.Communication.NetStack

參數(shù):

參數(shù)名類型必填說(shuō)明
typestring訂閱的事件類型。 - 'listening':數(shù)據(jù)包消息事件。 - 'close':關(guān)閉事件。
callbackCallback回調(diào)函數(shù)。

示例:

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連接的數(shù)據(jù)包消息事件或關(guān)閉事件。使用callback方式作為異步方法。

說(shuō)明: 可以指定傳入on中的callback取消一個(gè)訂閱,也可以不指定callback清空所有訂閱。

系統(tǒng)能力 :SystemCapability.Communication.NetStack

參數(shù):

參數(shù)名類型必填說(shuō)明
typestring訂閱事件類型。 - 'listening':數(shù)據(jù)包消息事件。 - 'close':關(guān)閉事件。
callbackCallback回調(diào)函數(shù)。

示例:

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

on('error')

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

訂閱UDPSocket連接的error事件。使用callback方式作為異步方法。

系統(tǒng)能力 :SystemCapability.Communication.NetStack

參數(shù):

參數(shù)名類型必填說(shuō)明
typestring訂閱的事件類型。'error':error事件。
callbackErrorCallback回調(diào)函數(shù)。

示例:

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方式作為異步方法。

說(shuō)明: 可以指定傳入on中的callback取消一個(gè)訂閱,也可以不指定callback清空所有訂閱。

系統(tǒng)能力 :SystemCapability.Communication.NetStack

參數(shù):

參數(shù)名類型必填說(shuō)明
typestring訂閱的事件類型。'error':error事件。
callbackErrorCallback回調(diào)函數(shù)。

示例:

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

NetAddress

目標(biāo)地址信息。

系統(tǒng)能力 :以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Communication.NetStack。

參數(shù)名類型必填說(shuō)明
addressstring本地綁定的ip地址。
portnumber端口號(hào) ,范圍0~65535。如果不指定系統(tǒng)隨機(jī)分配端口。
familynumber網(wǎng)絡(luò)協(xié)議類型,可選類型: - 1:IPv4 - 2:IPv6 默認(rèn)為1。

UDPSendOptions

UDPSocket發(fā)送參數(shù)。

系統(tǒng)能力 :以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Communication.NetStack。

參數(shù)名類型必填說(shuō)明
datastringArrayBuffer8+
address[NetAddress]目標(biāo)地址信息。

UDPExtraOptions

UDPSocket連接的其他屬性。

系統(tǒng)能力 :以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Communication.NetStack。

參數(shù)名類型必填說(shuō)明
oadcastboolean是否可以發(fā)送廣播。默認(rèn)為false。
receiveBufferSizenumber接收緩沖區(qū)大小(單位:Byte)。
sendBufferSizenumber發(fā)送緩沖區(qū)大小(單位:Byte)。
reuseAddressboolean是否重用地址。默認(rèn)為false。
socketTimeoutnumber套接字超時(shí)時(shí)間,單位毫秒(ms)。

SocketStateBase

Socket的狀態(tài)信息。

系統(tǒng)能力 :以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Communication.NetStack。

參數(shù)名類型必填說(shuō)明
isBoundboolean是否綁定。
isCloseboolean是否關(guān)閉。
isConnectedboolean是否連接。

SocketRemoteInfo

Socket的連接信息。

系統(tǒng)能力 :以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Communication.NetStack。

參數(shù)名類型必填說(shuō)明
addressstring本地綁定的ip地址。
familystring網(wǎng)絡(luò)協(xié)議類型,可選類型: - IPv4 - IPv6 默認(rèn)為IPv4。
portnumber端口號(hào),范圍0~65535。
sizenumber服務(wù)器響應(yīng)信息的字節(jié)長(zhǎng)度。

socket.constructTCPSocketInstance

constructTCPSocketInstance(): TCPSocket

創(chuàng)建一個(gè)TCPSocket對(duì)象。

系統(tǒng)能力 :SystemCapability.Communication.NetStack

返回值:

類型說(shuō)明
[TCPSocket返回一個(gè)TCPSocket對(duì)象。

示例:

let tcp = socket.constructTCPSocketInstance();

TCPSocket

TCPSocket連接。在調(diào)用TCPSocket的方法前,需要先通過(guò)[socket.constructTCPSocketInstance]創(chuàng)建TCPSocket對(duì)象。

bind

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

綁定IP地址和端口,端口可以指定或由系統(tǒng)隨機(jī)分配。使用callback方法作為異步方法。

需要權(quán)限 :ohos.permission.INTERNET

系統(tǒng)能力 :SystemCapability.Communication.NetStack

參數(shù):

參數(shù)名類型必填說(shuō)明
address[NetAddress]目標(biāo)地址信息,參考[NetAddress]。
callbackAsyncCallback回調(diào)函數(shù)。

示例:

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地址和端口,端口可以指定或由系統(tǒng)隨機(jī)分配。使用Promise方法作為異步方法。

需要權(quán)限 :ohos.permission.INTERNET

系統(tǒng)能力 :SystemCapability.Communication.NetStack

參數(shù):

參數(shù)名類型必填說(shuō)明
address[NetAddress]目標(biāo)地址信息,參考[NetAddress]。

返回值:

類型說(shuō)明
Promise以Promise形式返回TCPSocket綁定本機(jī)的IP地址和端口的結(jié)果。

示例:

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方法作為異步方法。

需要權(quán)限 :ohos.permission.INTERNET

系統(tǒng)能力 :SystemCapability.Communication.NetStack

參數(shù):

參數(shù)名類型必填說(shuō)明
options[TCPConnectOptions]TCPSocket連接的參數(shù),參考[TCPConnectOptions]。
callbackAsyncCallback回調(diào)函數(shù)。

示例:

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方法作為異步方法。

需要權(quán)限 :ohos.permission.INTERNET

系統(tǒng)能力 :SystemCapability.Communication.NetStack

參數(shù):

參數(shù)名類型必填說(shuō)明
options[TCPConnectOptionsTCPSocket連接的參數(shù),參考[TCPConnectOptions]。

返回值:

類型說(shuō)明
Promise以Promise形式返回TCPSocket連接到指定的IP地址和端口的結(jié)果。

示例:

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

通過(guò)TCPSocket連接發(fā)送數(shù)據(jù)。使用callback方式作為異步方法。

說(shuō)明: [connect]方法調(diào)用成功后,才可調(diào)用此方法。

需要權(quán)限 :ohos.permission.INTERNET

系統(tǒng)能力 :SystemCapability.Communication.NetStack

參數(shù):

參數(shù)名類型必填說(shuō)明
options[TCPSendOptions]TCPSocket發(fā)送請(qǐng)求的參數(shù),參考[TCPSendOptions]。
callbackAsyncCallback回調(diào)函數(shù)。

示例:

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

通過(guò)TCPSocket連接發(fā)送數(shù)據(jù)。使用Promise方式作為異步方法。

說(shuō)明: [connect]方法調(diào)用成功后,才可調(diào)用此方法。

需要權(quán)限 :ohos.permission.INTERNET

系統(tǒng)能力 :SystemCapability.Communication.NetStack

參數(shù):

參數(shù)名類型必填說(shuō)明
options[TCPSendOptions]TCPSocket發(fā)送請(qǐng)求的參數(shù),參考[TCPSendOptions]。

返回值:

類型說(shuō)明
Promise以Promise形式返回通過(guò)TCPSocket連接發(fā)送數(shù)據(jù)的結(jié)果。

示例:

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

關(guān)閉TCPSocket連接。使用callback方式作為異步方法。

需要權(quán)限 :ohos.permission.INTERNET

系統(tǒng)能力 :SystemCapability.Communication.NetStack

參數(shù):

參數(shù)名類型必填說(shuō)明
callbackAsyncCallback回調(diào)函數(shù)。

示例:

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

close

close(): Promise

關(guān)閉TCPSocket連接。使用Promise方式作為異步方法。

需要權(quán)限 :ohos.permission.INTERNET

系統(tǒng)能力 :SystemCapability.Communication.NetStack

返回值:

類型說(shuō)明
Promise以Promise形式返回關(guān)閉TCPSocket連接的結(jié)果。

示例:

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

獲取對(duì)端Socket地址。使用callback方式作為異步方法。

說(shuō)明: [connect]方法調(diào)用成功后,才可調(diào)用此方法。

需要權(quán)限 :ohos.permission.INTERNET

系統(tǒng)能力 :SystemCapability.Communication.NetStack

參數(shù):

參數(shù)名類型必填說(shuō)明
callbackAsyncCallback<[NetAddress](>回調(diào)函數(shù)。

示例:

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

獲取對(duì)端Socket地址。使用Promise方式作為異步方法。

說(shuō)明: [connect]方法調(diào)用成功后,才可調(diào)用此方法。

需要權(quán)限 :ohos.permission.INTERNET

系統(tǒng)能力 :SystemCapability.Communication.NetStack

返回值:

類型說(shuō)明
Promise<[NetAddress]>以Promise形式返回獲取對(duì)端socket地址的結(jié)果。

示例:

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狀態(tài)。使用callback方式作為異步方法。

說(shuō)明: [bind]或[connect]方法調(diào)用成功后,才可調(diào)用此方法。

需要權(quán)限 :ohos.permission.INTERNET

系統(tǒng)能力 :SystemCapability.Communication.NetStack

參數(shù):

參數(shù)名類型必填說(shuō)明
callbackAsyncCallback<[SocketStateBase]>回調(diào)函數(shù)。

示例:

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狀態(tài)。使用Promise方式作為異步方法。

說(shuō)明: [bind]或[connect]方法調(diào)用成功后,才可調(diào)用此方法。

需要權(quán)限 :ohos.permission.INTERNET

系統(tǒng)能力 :SystemCapability.Communication.NetStack

返回值:

類型說(shuō)明
Promise<[SocketStateBase]>以Promise形式返回獲取TCPSocket狀態(tài)的結(jié)果。

示例:

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

設(shè)置TCPSocket連接的其他屬性。使用callback方式作為異步方法。

說(shuō)明: [bind]或[connect]方法調(diào)用成功后,才可調(diào)用此方法。

需要權(quán)限 :ohos.permission.INTERNET

系統(tǒng)能力 :SystemCapability.Communication.NetStack

參數(shù):

參數(shù)名類型必填說(shuō)明
options[TCPExtraOptions]TCPSocket連接的其他屬性,參考[TCPExtraOptions]。
callbackAsyncCallback回調(diào)函數(shù)。

示例:

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

設(shè)置TCPSocket連接的其他屬性,使用Promise方式作為異步方法。

說(shuō)明: [bind]或[connect]方法調(diào)用成功后,才可調(diào)用此方法。

需要權(quán)限 :ohos.permission.INTERNET

系統(tǒng)能力 :SystemCapability.Communication.NetStack

參數(shù):

參數(shù)名類型必填說(shuō)明
options[TCPExtraOptions]TCPSocket連接的其他屬性,參考[TCPExtraOptions]。

返回值:

類型說(shuō)明
Promise以Promise形式返回設(shè)置TCPSocket連接的其他屬性的結(jié)果。

示例:

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方式作為異步方法。

系統(tǒng)能力 :SystemCapability.Communication.NetStack

參數(shù):

參數(shù)名類型必填說(shuō)明
typestring訂閱的事件類型。'message':接收消息事件。
callbackCallback<{message: ArrayBuffer, remoteInfo: [SocketRemoteInfo]}>回調(diào)函數(shù)。

示例:

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方式作為異步方法。

說(shuō)明: 可以指定傳入on中的callback取消一個(gè)訂閱,也可以不指定callback清空所有訂閱。

系統(tǒng)能力 :SystemCapability.Communication.NetStack

參數(shù):

參數(shù)名類型必填說(shuō)明
typestring訂閱的事件類型。'message':接收消息事件。
callbackCallback<{message: ArrayBuffer, remoteInfo: [SocketRemoteInfo]}>回調(diào)函數(shù)。

示例:

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

on('connect' | 'close')

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

訂閱TCPSocket的連接事件或關(guān)閉事件。使用callback方式作為異步方法。

系統(tǒng)能力 :SystemCapability.Communication.NetStack

參數(shù):

參數(shù)名類型必填說(shuō)明
typestring訂閱的事件類型。 - 'connect':連接事件。 - 'close':關(guān)閉事件。
callbackCallback回調(diào)函數(shù)。

示例:

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的連接事件或關(guān)閉事件。使用callback方式作為異步方法。

說(shuō)明: 可以指定傳入on中的callback取消一個(gè)訂閱,也可以不指定callback清空所有訂閱。

系統(tǒng)能力 :SystemCapability.Communication.NetStack

參數(shù):

參數(shù)名類型必填說(shuō)明
typestring訂閱的事件類型。 - 'connect':連接事件。 - 'close':關(guān)閉事件。
callbackCallback回調(diào)函數(shù)。

示例:

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

on('error')

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

訂閱TCPSocket連接的error事件。使用callback方式作為異步方法。

系統(tǒng)能力 :SystemCapability.Communication.NetStack

參數(shù):

參數(shù)名類型必填說(shuō)明
typestring訂閱的事件類型。'error':error事件。
callbackErrorCallback回調(diào)函數(shù)。

示例:

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方式作為異步方法。

說(shuō)明: 可以指定傳入on中的callback取消一個(gè)訂閱,也可以不指定callback清空所有訂閱。

系統(tǒng)能力 :SystemCapability.Communication.NetStack

參數(shù):

參數(shù)名類型必填說(shuō)明
typestring訂閱的事件類型。'error':error事件。
callbackErrorCallback回調(diào)函數(shù)。

示例:

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

TCPConnectOptions

TCPSocket連接的參數(shù)。

系統(tǒng)能力 :以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Communication.NetStack。

參數(shù)名類型必填說(shuō)明
address[NetAddress]綁定的地址以及端口。
timeoutnumber超時(shí)時(shí)間,單位毫秒(ms)。

TCPSendOptions

TCPSocket發(fā)送請(qǐng)求的參數(shù)。

系統(tǒng)能力 :以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Communication.NetStack。

參數(shù)名類型必填說(shuō)明
datastringArrayBuffer8+
encodingstring字符編碼(UTF-8,UTF-16BE,UTF-16LE,UTF-16,US-AECII,ISO-8859-1),默認(rèn)為UTF-8。HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿

搜狗高速瀏覽器截圖20240326151450.png

TCPExtraOptions

TCPSocket連接的其他屬性。

系統(tǒng)能力 :以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Communication.NetStack。

參數(shù)名類型必填說(shuō)明
keepAliveboolean是否保持連接。默認(rèn)為false。
OOBInlineboolean是否為OOB內(nèi)聯(lián)。默認(rèn)為false。
TCPNoDelaybooleanTCPSocket連接是否無(wú)時(shí)延。默認(rèn)為false。
socketLingerObjectsocket是否繼續(xù)逗留。 - on:是否逗留(true:逗留;false:不逗留)。 - linger:逗留時(shí)長(zhǎng),單位毫秒(ms),取值范圍為0~65535。 當(dāng)入?yún)n設(shè)置為true時(shí),才需要設(shè)置。
receiveBufferSizenumber接收緩沖區(qū)大小(單位:Byte)。
sendBufferSizenumber發(fā)送緩沖區(qū)大小(單位:Byte)。
reuseAddressboolean是否重用地址。默認(rèn)為false。
socketTimeoutnumber套接字超時(shí)時(shí)間,單位毫秒(ms)。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 網(wǎng)絡(luò)管理
    +關(guān)注

    關(guān)注

    0

    文章

    118

    瀏覽量

    27656
  • Socket
    +關(guān)注

    關(guān)注

    0

    文章

    211

    瀏覽量

    34637
  • 鴻蒙
    +關(guān)注

    關(guān)注

    57

    文章

    2313

    瀏覽量

    42748
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    HarmonyOS 網(wǎng)絡(luò)管理開(kāi)發(fā)Socket 連接

    簡(jiǎn)介 Socket 連接主要是通過(guò) Socket 進(jìn)行數(shù)據(jù)傳輸,支持 TCP/UDP/TLS 協(xié)議。 基本概念 ? ● Socket:套接字,就是對(duì)
    的頭像 發(fā)表于 02-18 09:20 ?881次閱讀

    鴻蒙原生應(yīng)用開(kāi)發(fā)-網(wǎng)絡(luò)管理Socket連接(一)

    一、簡(jiǎn)介 Socket連接主要是通過(guò)Socket進(jìn)行數(shù)據(jù)傳輸,支持TCP/UDP/TLS協(xié)議。 二、基本概念 Socket:套接字,就是對(duì)網(wǎng)絡(luò)
    發(fā)表于 04-01 14:20

    鴻蒙原生應(yīng)用開(kāi)發(fā)-網(wǎng)絡(luò)管理Socket連接(二)

    。 import socket from \'@ohos.net.socket\'; // 創(chuàng)建一個(gè)TCPSocket連接,返回一個(gè)TCPSocket對(duì)象。 let tcp
    發(fā)表于 04-02 15:22

    鴻蒙原生應(yīng)用開(kāi)發(fā)-網(wǎng)絡(luò)管理Socket連接(三)

    \'@ohos.net.socket\'; let tlsTwoWay: socket.TLSSocket = socket.constructTLSSocketInstance(); // 設(shè)置通信過(guò)程中使用參數(shù) let
    發(fā)表于 04-03 14:26

    鴻蒙原生應(yīng)用開(kāi)發(fā)-網(wǎng)絡(luò)管理模塊總述

    一、網(wǎng)絡(luò)管理模塊主要提供以下功能: HTTP數(shù)據(jù)請(qǐng)求:通過(guò)HTTP發(fā)起一個(gè)數(shù)據(jù)請(qǐng)求。 WebSocket連接:使用WebSocket建立服務(wù)器與客戶端的雙向連接
    發(fā)表于 04-08 09:45

    如何在RT-Thread中利用標(biāo)準(zhǔn)BSD Socket API來(lái)開(kāi)發(fā)網(wǎng)絡(luò)應(yīng)用

    本文描述了如何在 RT-Thread 中利用標(biāo)準(zhǔn) BSD Socket API 來(lái)開(kāi)發(fā)網(wǎng)絡(luò)應(yīng)用。并給出了在正點(diǎn)原子 STM32F4 探索者開(kāi)發(fā)板上運(yùn)行 NTP(通過(guò)網(wǎng)絡(luò)獲取時(shí)間)和 M
    發(fā)表于 03-30 06:26

    基于UDP協(xié)議的Socket網(wǎng)絡(luò)編程模式的實(shí)現(xiàn)

    傳輸層進(jìn)行網(wǎng)絡(luò)通信編程的接口是Socket&它是通用的開(kāi)發(fā)網(wǎng)絡(luò)通信程序標(biāo)準(zhǔn)) 本文介紹了基于UDP協(xié)議Socket編程機(jī)制和原理& 提出了在C/ S模型下以Java
    發(fā)表于 09-09 15:10 ?42次下載

    什么是Socket連接Socket與TCP連接的關(guān)系

    主機(jī) A 的應(yīng)用程序必須通過(guò) Socket 建立連接才能與主機(jī)B的應(yīng)用程序通信,而建立 Socket 連接需要底層 TCP/IP 協(xié)議來(lái)建立 TCP
    發(fā)表于 03-31 15:10 ?1020次閱讀

    Socket 網(wǎng)絡(luò)編程框架介紹

    Socket 網(wǎng)絡(luò)編程框架 Socket(套接字)是一個(gè)網(wǎng)絡(luò)編程概念,描述了一個(gè)通信端點(diǎn)(Endpoint),用于建立網(wǎng)絡(luò)連接(Connec
    的頭像 發(fā)表于 11-09 14:19 ?1031次閱讀
    <b class='flag-5'>Socket</b> <b class='flag-5'>網(wǎng)絡(luò)</b>編程框架介紹

    什么是Socket連接Socket的工作原理 它與TCP連接有什么關(guān)系?

    和服務(wù)器之間的數(shù)據(jù)交換。 Socket連接的工作原理是基于TCP/IP協(xié)議。TCP(傳輸控制協(xié)議)是一種面向連接的、可靠的傳輸協(xié)議,用于在網(wǎng)絡(luò)中的兩個(gè)應(yīng)用程序之間建立可靠的通信。而
    的頭像 發(fā)表于 01-22 16:10 ?2165次閱讀

    鴻蒙開(kāi)發(fā)實(shí)戰(zhàn):【網(wǎng)絡(luò)管理-Socket連接

    Socket網(wǎng)絡(luò)通信方面的應(yīng)用,展示了Socket在兩端設(shè)備的連接驗(yàn)證、聊天通信方面的應(yīng)用。
    的頭像 發(fā)表于 03-19 22:04 ?853次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開(kāi)發(fā)</b>實(shí)戰(zhàn):【<b class='flag-5'>網(wǎng)絡(luò)</b><b class='flag-5'>管理</b>-<b class='flag-5'>Socket</b><b class='flag-5'>連接</b>】

    如何理解socket編程接口

    Socket編程接口是一種網(wǎng)絡(luò)編程的基本概念,它提供了一種在不同計(jì)算機(jī)之間進(jìn)行通信的方法。 Socket編程接口的基本概念 1.1 Socket的定義
    的頭像 發(fā)表于 08-16 10:48 ?356次閱讀

    socket連接超時(shí)如何處理

    網(wǎng)絡(luò)編程中,socket連接超時(shí)是一個(gè)常見(jiàn)的問(wèn)題,它可能由多種原因引起,比如網(wǎng)絡(luò)延遲、服務(wù)器負(fù)載過(guò)高或者客戶端請(qǐng)求超時(shí)設(shè)置過(guò)短等。處理socket
    的頭像 發(fā)表于 11-01 16:48 ?370次閱讀

    socket 連接超時(shí)處理技巧

    網(wǎng)絡(luò)編程中,Socket連接超時(shí)是一個(gè)常見(jiàn)的問(wèn)題。處理超時(shí)的關(guān)鍵在于確保程序能夠優(yōu)雅地處理這些情況,避免程序崩潰或者無(wú)響應(yīng)。以下是一些處理Socket
    的頭像 發(fā)表于 11-12 14:13 ?179次閱讀

    socket 與 RESTful API 的使用

    在現(xiàn)代網(wǎng)絡(luò)應(yīng)用中,數(shù)據(jù)傳輸和通信是核心功能之一。為了實(shí)現(xiàn)這一功能,開(kāi)發(fā)者通常會(huì)使用兩種主流的技術(shù):Socket和RESTful API。 1. Socket的概念和特點(diǎn) 1.1
    的頭像 發(fā)表于 11-12 14:22 ?201次閱讀