mina 框架如何发送字节数组
mina 框架用来做NIO,挺方便,但是如何才可以发送字节数组呢?接收没问题的.
小弟是这样做的
int blen = Pkg.createLoginRespPackage(1).length;
System.out.println("------------------------> len:" + blen );
ByteBuffer buf = ByteBuffer.allocate( blen ) ;
if(buf!=null){
System.out.println("send...");
//buf.clear();
//bb.get(Pkg.createLoginRespPackage(1));
buf.put( Pkg.createLoginRespPackage(1) );
//buf.put((byte) '.');
buf.flip();
//session.write(bb.duplicate()); //发送验证包
session.write(buf); //发送验证包
//buf.clear();
}
但是出现如下异常:
java.lang.IllegalStateException: Don't know how to handle message of type 'java.nio.HeapByteBuffer'. Are you missing a protocol encoder?
at org.apache.mina.common.AbstractPollingIoProcessor.flushNow(AbstractPollingIoProcessor.java:536)
at org.apache.mina.common.AbstractPollingIoProcessor.flush(AbstractPollingIoProcessor.java:469)
at org.apache.mina.common.AbstractPollingIoProcessor.access$500(AbstractPollingIoProcessor.java:43)
at org.apache.mina.common.AbstractPollingIoProcessor$Worker.run(AbstractPollingIoProcessor.java:681)
at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)