最近在研究nio,头有点大了。简单的传输已经实现问题不大,复杂点的就蒙了。
大家知道J2ME是没有nio的,我的程序是从手机客户端向服务端传送数据。
数据是有一定格式含义的。J2ME端用的是DataOutputStream向服务端写数据。
服务端用ByteBuffer缓冲接收,如何重新组装并解析成有意义的数据。
麻烦高手给个例子吧。谢谢。
大家知道J2ME是没有nio的,我的程序是从手机客户端向服务端传送数据。
数据是有一定格式含义的。J2ME端用的是DataOutputStream向服务端写数据。
服务端用ByteBuffer缓冲接收,如何重新组装并解析成有意义的数据。
麻烦高手给个例子吧。谢谢。
解决方案 »
- 写linux shell脚本,在几千台服务器上装jdk和tomcat
- 如何拆分SET记录集
- 想用Eclipse3.2 + tomcat5.0 + struts1.2做项目,不知道有什么好struts插件没?
- 第一次在这里发帖啊,希望别让我失望哦
- 怎样从打好的jar包里访问外面的数据库?
- 我的Visual studio 6里面怎么没有visual j++ 啊
- java让html如此伟大?
- 高分求教!!!!!!
- 请教各位牛人,完满问答下列问题有高分!急急急急急急急急!!!!!
- 我在做一个项目,要用到OJB(ObJectRelationalBridge ),哪位兄弟知道这个东东是怎么用的?有什么相关的资料?
- 关于日历类 Calendar 的静态字段,急求解!!
- 比较字符串头字符的问题。
DataOutputStream dos = new DataOutputStream(sc.openOutputStream());
dos.writeInt(1);
dos.writeUTF("abcdefghijklmnopqrstuvwxyz");
......服务端的ByteBuffer缓冲区大小又比较小ByteBuffer buffer = ByteBuffer.allocate(10);如何组装数据,并且实现类似于DataInputStream类似的功能?
int remaining = buffer.remaining();
if(remaining >= 6 && buffer.getShort(4) + 6 == remaining){
int id = buffer.getInt();
byte[] b = new byte[buffer.getShort()];
buffer.get(b);
String s = new String(b,Charset.forName("UTF-8")); .....
}
假设是要提供10万级同时在线的,支持上传文件的服务器。
一般来说ByteBuffer缓冲开辟多大合适?
1024吗。
你需要考虑如果不同的客户端数据同时到达以后,buffer里的数据需要区别对待。
或者不同的channel过来的数据需要等待完成之后做处理。个人意见,没有完全明白楼主的意思。