socketChannel h5
来源:互联网 发布:音箱推荐 知乎 编辑:程序博客网 时间:2024/04/30 03:06
好不容易写出来的,以后做参考!
function shopping_socket_test(sendJson){sendJson = 'BARCODECERTIFY${"flow_no":"1","posno":"0001","flow_id":1,"barcode":"6933943500050","price":0,"qty":1}';var receiveMsgJson = "";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.newObject("java.net.InetSocketAddress","192.168.1.135",2001);var ByteBuffer = plus.android.importClass("java.nio.ByteBuffer");var Iterator = plus.android.importClass("java.util.Iterator");var ByteArrayOutputStream = plus.android.importClass("java.io.ByteArrayOutputStream");var channel = null;var selector = null;try{channel = SocketChannel.open();plus.android.invoke(channel,"configureBlocking",false);selector = Selector.open();plus.android.invoke(channel,"register",selector,SelectionKey.OP_CONNECT);plus.android.invoke(channel,"connect",InetSocketAddress);var isOver = false;while(isOver == false){plus.android.invoke(selector,"select");var ite_keys = selector.selectedKeys();plus.android.importClass(ite_keys);var ite = ite_keys.iterator();while(plus.android.invoke(ite,"hasNext")){var selected_key = plus.android.invoke(ite,"next");plus.android.invoke(ite,"remove");if(plus.android.invoke(selected_key,"isConnectable")){if(plus.android.invoke(channel,"isConnectionPending")){if(plus.android.invoke(channel,"finishConnect")){plus.android.invoke(selected_key,"interestOps",SelectionKey.OP_READ);var sendMessage = plus.android.invoke(sendJson,"getBytes","UTF-8");plus.android.invoke(channel,"write",ByteBuffer.wrap(sendMessage));}}else{plus.android.invoke(selected_key,"cancel");console.log("cancel")}}else if(plus.android.invoke(selected_key,"isReadable")){ var channel = plus.android.invoke(selected_key,"channel"); var buffer = ByteBuffer.allocate(1024); var baos = new ByteArrayOutputStream(); var size = 0; while ((size = plus.android.invoke(channel,"read",buffer)) > 0) { buffer.flip(); baos.write(buffer.array(),0,size); buffer.clear(); } baos.close(); receiveMsgJson = baos.toString(); console.log(receiveMsgJson); isOver = true;}}}}catch(e){//TODO handle the exceptionreceiveMsgJson = "error:服务器没有开启,请确认!";console.log(e);}finally{if(channel != null){ try { channel.close(); } catch (e) { console.log(e); } } if(selector != null){ try { selector.close(); } catch (e) { console.log(e); } }}console.log(receiveMsgJson);return receiveMsgJson;}
0 0
- socketChannel h5
- socketChannel h5
- socketChannel h5
- socketChannel h5
- h5 利用socketchannel发送请求
- SocketChannel
- SocketChannel
- SocketChannel
- SocketChannel 学习
- SocketChannel.write
- SocketChannel类
- NIO SocketChannel
- selector socketChannel
- h5
- h5
- h5
- H5
- H5
- thinkphp的delete操作返回值为0的问题
- malloc函数详解
- 总体设计的原理
- c语言的强制转换
- Jzzhu and Cities CodeForces
- socketChannel h5
- 文章标题
- 详解Unity 5 全局光照系统Enlighten问题(上)
- 【LeetCode题解】21.Merge Two Sorted Lists
- 双目摄像头标定参数
- ElemType是什么数据类型?
- lubuntu12.04设置静态IP
- 捉虫与寻龙:从0打造wordpress插件wp2oc staticblog (1) – 将wordpress贴子与owncloud网盘存储同步
- Code=-1016 “Request failed: unacceptable content-type:null