var DatagramPacket;
var DatagramSocket;
var InetAddress;
var JString;
var socket;
var port = 10000;
var timeout = 6000;
try {
DatagramPacket = plus.android.importClass('java.net.DatagramPacket');
DatagramSocket = plus.android.importClass('java.net.DatagramSocket');
InetAddress = plus.android.importClass('java.net.InetAddress');
JString = plus.android.importClass('java.lang.String');
if (DatagramSocket == undefined) {
return;
}
socket = new DatagramSocket(port);
// 设置接收超时时长
socket.setSoTimeout(timeout);
// 创建广播地址
var broadcastAddress = InetAddress.getByName('255.255.255.255');
// 发送广播数据
var sendData = this.stringToByte("广播的数据");
var sendPacket = new DatagramPacket(sendData, sendData.length, broadcastAddress, port);
socket.send(sendPacket);
// 接收数据
var isReceive = true;
while(isReceive){
try{
// 设置接收缓存,需要用0填充,否则为 null 无法接收。
var buffer = new Array(1024).fill(0);
var packet = new DatagramPacket(buffer, buffer.length);
socket.receive(packet);
var data = new JString(packet.getData()).trim();
if (data.length == 0){
// 接收超时,结束接收
isReceive = false;
}else{
console.log('===========收到数据============',data);
}
}catch(ex){
isReceive = false;
}
}
} catch (ex) {
console.log('===========出错了============',ex);
} finally {
if (socket != undefined){
socket.close();
}
}

l***@126.com
- 发布:2020-09-10 15:18
- 更新:2022-09-21 16:55
- 阅读:2682
UDP 通信 (android)
分类:uni-app
5 个评论
要回复文章请先登录或注册
2***@qq.com
pipixx
w***@wicos.cn
[已删除]
w***@126.com