Android java.nio实践总结
2013-02-18 15:12
211 查看
经过长时间的在android上使用java.nio,期间遇到了和解决了不少问题。 总结几个比较常见及难解的问题。 如下:
1.通信的实时性问题
可设置socket TcpNoDelay属性。
socket还有其他属性,可参考Java之Socket用法详解
2.channel和select循环的线程问题
注册channel的线程必须是,select循环所在的线程。
3.android2.3 主动连接方收不到对方数据问题
在android2.3, 主动连接的一方,连接成功后,如果同时关心OP_CONNECT和OP_READ
则select循环获取不到 SelectionKey.OP_READ事件 (即使对方已经发过来很多数据)
解决方法: 主动连接的一方,连接成功后,不再关心OP_CONNECT
注:android4.0没此问题。
示例代码见: android nio代码
其他问题:可参考Java NIO 实践经验总结
1.通信的实时性问题
可设置socket TcpNoDelay属性。
private void setSocketOption(Socket socket) { try { socket.setTcpNoDelay(true); } catch (Exception e) { e.printStackTrace(); } }
socket还有其他属性,可参考Java之Socket用法详解
2.channel和select循环的线程问题
注册channel的线程必须是,select循环所在的线程。
3.android2.3 主动连接方收不到对方数据问题
在android2.3, 主动连接的一方,连接成功后,如果同时关心OP_CONNECT和OP_READ
key.interestOps(SelectionKey.OP_CONNECT | SelectionKey.OP_READ);
则select循环获取不到 SelectionKey.OP_READ事件 (即使对方已经发过来很多数据)
解决方法: 主动连接的一方,连接成功后,不再关心OP_CONNECT
注:android4.0没此问题。
示例代码见: android nio代码
其他问题:可参考Java NIO 实践经验总结
相关文章推荐
- Android&Java实践总结
- Java NIO 实践经验总结
- Java NIO 实践经验总结
- java异常处理实践及总结
- Android studio NDK开发 从入门到实践-之将java代码打包成jar包
- java 基础知识之网络通信(TCP通信、UDP通信、多播以及NIO)总结
- Android笔试之JAVA笔试题总结
- Android开发实践:Java层与Jni层的数组传递
- java学习-NIO(五)NIO学习总结以及NIO新特性介绍
- Android开发:最详细的 Toolbar 开发实践总结
- android、Java下判断两个String是否相等 、EditText输入是否为空,限定输入数字的实现 总结
- Android实践项目汇报(总结)-修改
- Atitit. 异常的使用总结最佳实践java .net php Vo8f
- [Android进阶]Java、Android 内存泄漏总结
- Java 网络IO编程总结(BIO、NIO、AIO)
- Java 网络IO编程总结(BIO、NIO、AIO均含完整实例代码)
- 某小型公司持续集成工具jenkins实践(JAVA WEB、Android、IOS、Html)
- android java.nio.bufferoverflowexception
- 【android初学日志】Conversion to Dalvik format failed: Unable to execute dex: java.nio.BufferOverf<一>
- Java BIO, NIO, AIO 总结