System.out.println("失败服务端消息失败");
}
}
});
// ctx.writeAndFlush(message);
}
@Override
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
// ctx.close();
super.exceptionCaught(ctx, cause);
}
@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
try {
Message newMsg = (Message) msg;
System.out.println("收到服务端的内容" + newMsg);
}finally {
ReferenceCountUtil.release(msg);
}
}
}
传输的POJO的类,是自定义的封装好的信息。
package com.netty.serialize.message;
import java.io.Serializable;
/**
* Created by sdc on 2017/8/26.
*/
public class Message implements Serializable{
/**
*
*/
private static final long serialVersionUID = 4923081103118853877L;
private MsgHeader header;
private Object body;
//检验和
// private byte crcCode;
// public byte getCrcCode() {
// return crcCode;
// }
//
// public void setCrcCode(byte crcCode) {
// this.crcCode = crcCode;
// }
public MsgHeader getHeader() {
return header;
}
public void setHeader(MsgHeader header) {
this.header = header;
}
public Object getBody() {
return body;
}
public void setBody(Object body) {
this.body = body;
}
@Override
public String toString() {
return "Message{" +
"header=" + header +
", body=" + body +
// ", crcCode=" + crcCode +
'}';
}
}
package com.netty.serialize.message;
import java.io.Serializable;
import java.util.Arrays;
/**
* Created by sdc on 2017/8/26.
*/
public class MsgHeader implements Serializable{
/**
*
*/
private static final long serialVersionUID = 4923081103118853877L;
//固定头
private byte startTag;
//命令码,4位
private byte[] cmdCode;
//版本 2位
private byte[] version;
private int length;
public byte[] getVersion() {
return version;
}
public void setVersion(byte[] version) {
&