协议DEMO

public class WebStarter {

    /**
     * 报文格式
     */
    static class Message {
        int length;
        byte[] body;
    }

    /**
     * 报文辅助类
     */
    static class MessageHelper{
        /**
         * 将报文生成字节数组
         * @param message
         * @return
         */
        public static byte[] toByte(Message message) {
            byte[] rs = new byte[4+message.body.length];
            int2byte(message.length,rs,0);
            for (int i=0;i<message.body.length;i++) {
                rs[4+i] = message.body[i];
            }
            return rs;
        }

        /**
         * 将字节数组转成报文
         * @param data
         * @return
         */
        public static Message fromByte(byte[] data) {
            Message ms = new Message();
            ms.length = byte2int(data,0);
            ms.body = new byte[data.length-4];
            for (int i=0;i<ms.body.length;i++){
                ms.body[i] = data[4+i];
            }
            return ms;
        }
    }
    public static void main(String[] args) throws Exception {
        //ResetApiStarter.start();

        Message message = new Message();
        String data = "同一个世界,同一个梦想.One world,One Dream";
        byte[] bdata = data.getBytes("utf-8");
        message.length = bdata.length+4;// 数据长度 字段占4个字节
        message.body = bdata;
        System.out.println("原始报文长度:"+message.length);
        System.out.println("原始报文内容:"+data);
        // 报文转字节
        byte[] rs = MessageHelper.toByte(message);
        // 字节转报文
        Message _rs = MessageHelper.fromByte(rs);
        System.out.println("解析后报文长度:"+_rs.length);
        System.out.println("解析后数据内容:"+new String(message.body));
    }

    public static byte[] int2byte(int val,byte[] rs,int offset) {
        for (int i=0;i<4;i++) {
            rs[offset+i] = (byte) ((val >> (i*8)) & 0xFF);
        }
        return rs;
    }

    public static int byte2int(byte[] data,int offset) {
        int rs = 0;
        for (int i=0;i<4;i++) {
            rs = rs | ((data[offset+i] & 0xFF) << (i*8));
        }
        return rs;
    }
}

猜你喜欢

转载自blog.csdn.net/awei1024/article/details/80261542