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; } }
协议DEMO
猜你喜欢
转载自blog.csdn.net/awei1024/article/details/80261542
今日推荐
周排行