java广播数据包发送,请问怎么解决发udp广播包,报 Uncaught android.os.NetworkOnMainThreadException;at java.net.DatagramSoc...

mui.plusReady(function(){

testThread()

})

function testThread() {

var App = plus.android.runtimeMainActivity();

var Thread = plus.ios.importClass('java.lang.Thread');

var SocketChannel = plus.android.importClass('java.nio.channels.SocketChannel');

var Selector = plus.android.importClass('java.nio.channels.Selector');

var SelectionKey = plus.android.importClass('java.nio.channels.SelectionKey');

var InetSocketAddress = plus.android.importClass('java.net.InetSocketAddress');

var SocketAddress = plus.android.importClass('java.net.SocketAddress');

var ByteBuffer = plus.android.importClass('java.nio.ByteBuffer');

var Iterator = plus.android.importClass('java.util.Iterator');

var method = plus.android.importClass('java.lang.reflect.Method');

var OutputStreamWriter = plus.android.importClass('java.io.OutputStreamWriter');

//测试改良

var StrictMode = plus.android.importClass('android.os.StrictMode');

var Build = plus.android.importClass('android.os.Build');

if(Build.VERSION.SDK_INT > 9) {

var policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();

StrictMode.setThreadPolicy(policy);

}

selectionKey = new SelectionKey();

var Runnable = plus.android.implements('java.lang.Runnable', {

"run": function() {

//选择一组键,其相应的通道已为 I/O 操作准备就绪。

//此方法执行处于阻塞模式的选择操作。

//返回此选择器的已选择键集。

var DatagramPacket = plus.android.importClass("java.net.DatagramPacket");

var DatagramSocket = plus.android.importClass("java.net.DatagramSocket");

var InetAddress = plus.android.importClass("java.net.InetAddress");

var intent = plus.android.newObject("android.content.Intent");

console.log(intent)

// InetAddress

var addr = "192.168.2.230",

port = 8080, // 60000

TTLTime = 5000;

var ia = new InetAddress();

var address = ia.getByName(addr);

console.log(address);

// socket

var socket = new DatagramSocket();

socket.setSoTimeout(TTLTime);

var data = [104, 101, 108, 108, 111];

var packet = new DatagramPacket(data, data.length, address, port);

// 发送数据

try {

socket.send(packet);

} catch(e) {

console.log(e);

}

console.log("Invoked Object’s wahaha: ");

//selectionKeys.clear();

}

});

//方式1启动线程

App.runOnUiThread(Runnable);

}

你可以试下,我试过可以发送UDP给后台,后台能接收到信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值