需要注意的是:需要用Unicode编码方式
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title></title>
<script type="text/javascript">
var udp;
document.addEventListener('plusready', function(){
//console.log("所有plus api都应该在此事件发生后调用,否则会出现plus is undefined。"
udp=new UDP();
udp.Listen(5412,function(data){
alert("收到:" data);
});
});
function senddata(){
udp.Send("192.168.1.197",12345,"a地");
}
function UDP(){
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 Addr=new InetAddress();
var sock;
var _RUNNING=true;
this.Listen=function(port,recvcallback){
sock=new DatagramSocket(port);
var buf=[];
buf=Str2Byte("12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890");
//buf[1024]=0;
sock.setSoTimeout(50);
var recvtime=setTimeout(recv(recvcallback),"10");
function recv(callback) {
var pack=new DatagramPacket(buf,buf.length);
try{
sock.receive(pack);
if (pack.getLength()>0) {
var data=Byte2Str(pack.getData(),pack.getLength());
callback(data);
clearTimeout(recvtime);
}
}catch(e){
}
if (_RUNNING) recvtime=setTimeout(recv(callback),"10");
}
};
this.Close=function() {
alert("Socket Close");
sock.close();
_RUNNING=false;
};
this.Send=function(remote,port,data) {
var buf=[];
buf=Str2Byte(data);
var pack=new DatagramPacket(buf,buf.length,Addr.getByName(remote),port);
sock.send(pack);
};
}
function Byte2Str(arr,length){
var str="";
var d;
for(var i=0;i<length;i =2) {
d=arr[i];
d=(arr[i 1]<<8) d;
var tmp=String.fromCharCode(d);
str =tmp;
}
return str;
}
function Str2Byte(str){
var ch,c2,st,re=[];
for(var i=0;i<str.length;i ) {
ch=str.charCodeAt(i);
st=[];
do {
c2=ch
0 个评论
要回复文章请先登录或注册