package com.example.mina.client.box.aeroflex; import org.apache.mina.core.buffer.IoBuffer; import org.apache.mina.core.session.IoSession; import org.apache.mina.filter.codec.ProtocolEncoder; import org.apache.mina.filter.codec.ProtocolEncoderAdapter; import org.apache.mina.filter.codec.ProtocolEncoderOutput; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * @author dy * @date 2021/3/3 */ public class AeroflexByteEnCoder extends ProtocolEncoderAdapter { //用于打印日志信息 private final static Logger log = LoggerFactory .getLogger(ProtocolEncoder.class); //编码 将数据包转成字节数组 @Override public void encode(IoSession session, Object message, ProtocolEncoderOutput out) throws Exception { byte[] bytes = (byte[]) message; IoBuffer buffer = IoBuffer.allocate(bytes.length); buffer.setAutoExpand(true); // 将数据放入缓冲IoBuffer buffer.put(bytes); // 写状态切换到读状态 buffer.flip(); out.write(buffer); // out.flush(); // // buffer.free(); } }