document.addEventListener( "plusready", function(){
console.log("addEventListener");
DatagramPacket = plus.android.importClass("java.net.DatagramPacket");
DatagramSocket = plus.android.importClass("java.net.DatagramSocket");
InetAddress = plus.android.importClass("java.net.InetAddress");
sensor_socket = new DatagramSocket(9999);
sensor_socket.setSoTimeout(1); // 设置接收数据时阻塞的最长时间
try {
var serverAddress = "Server not found";
var dataOrg = [11,22,-11,-80];
console.log(dataOrg);
var data = Array2Bytes(dataOrg);
console.log(data);
var port = 9999;
var iAdd = new InetAddress();
var dp = new DatagramPacket(data, data.length,iAdd.getByName("192.168.56.1"), port);
console.log(dp.getData());
sensor_socket.send(dp);
}catch(err){
console.log(err.message);
}
}, false );
function Array2Bytes(arr){
var ch, st, re = [];
for (var i = 0; i < arr.length; i++ ) {
ch = arr[i]; // get char
re = re.concat( ch & 0xFF );
//console.log(re);
}
// return an array of bytes
return re;
}
打印信息如下:
11,22,-11,-80 at js/sensor_udp.js:66
11,22,245,176 at js/sensor_udp.js:68
11,22,0,0 at js/sensor_udp.js:74
负数(或者说大于128)时,不能正确打包。
java原接口可以正确处理。
0 个回复