具体文档地址
import socket from '@ohos.net.socket';
let udp = socket.constructUDPSocketInstance();
udp.bind({address: '192.168.xx.xxx', port: 8080, family: 1}).then(() => {
console.log('bind success');
udp.getState().then(data => {
console.log('getState success:' + JSON.stringify(data));
}).catch(err => {
console.log('getState fail');
});
// https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V2/js-apis-socket-0000001477981433-V2#ZH-CN_TOPIC_0000001523808874__setextraoptions
// udp.setExtraOptions({
// receiveBufferSize:1000,
// sendBufferSize:1000,
// reuseAddress:false,
// socketTimeout:6000,
// broadcast:true
// }, err=> {
// if (err) {
// console.log('setExtraOptions fail');
// return;
// }
// console.log('setExtraOptions success');
// })
}).catch(err => {
console.log('bind fail');
});
udp.send({
data:'Hello, server!',
address: {
address:'192.168.xx.xxx',
port:1234,
family:1
}
}).then(() => {
console.log('send success');
}).catch(err => {
console.log('send fail');
});
// 订阅UDPSocket连接的接收消息事件
udp.on('message', value => {
console.log("on message, message:" + value.message + ", remoteInfo:" + value.remoteInfo);
});
// 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');
// https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V2/js-apis-socket-0000001477981433-V2#ZH-CN_TOPIC_0000001523808874__onlistening--close
udp.on('listening', () => {
console.log("on listening success");
});
udp.on('close', () => {
console.log("on close success" );
});
// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
// udp.off('listening', callback1);
// udp.off('listening');
// udp.on('error', err => {
// console.log("on error, err:" + JSON.stringify(err))
// });
//
// // 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
// udp.off('error', callback);
// udp.off('error');
// let promise = udp.close();
// promise.then(() => {
// console.log('close success');
// }).catch(err => {
// console.log('close fail');
// });
确实利好前端