AeroflexByteEnCoder.java 1.1 KB
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();
    }

}