package com.ld.igds.io.sample.lt;
|
|
import com.ld.igds.util.BytesUtil;
|
import io.netty.channel.ChannelHandlerContext;
|
import io.netty.channel.SimpleChannelInboundHandler;
|
import io.netty.util.internal.logging.InternalLogger;
|
import io.netty.util.internal.logging.InternalLoggerFactory;
|
|
import java.net.InetSocketAddress;
|
|
/**
|
* Handles a client-side channel.
|
*/
|
|
public class ClientHandler extends SimpleChannelInboundHandler<Object> {
|
private final InternalLogger log = InternalLoggerFactory.getInstance(this
|
.getClass());
|
@Override
|
public void channelActive(ChannelHandlerContext ctx) {
|
InetSocketAddress insocket = (InetSocketAddress) ctx.channel()
|
.remoteAddress();
|
log.info("扦样机成功连接,IP={},port={}", insocket.getAddress()
|
.getHostAddress(), insocket.getPort());
|
if(LtCheckClientEngine.CHECK_MAC.get( insocket.getAddress().getHostAddress()) == null ){
|
LtCheckClientEngine.CHECK_MAC.put( insocket.getAddress().getHostAddress(),new LtCHeckMac());
|
}
|
LtCheckClientEngine.CHECK_MAC.get( insocket.getAddress().getHostAddress()).setSerStart(true);
|
}
|
|
@Override
|
public void channelInactive(ChannelHandlerContext ctx) throws Exception {
|
super.channelInactive(ctx);
|
|
InetSocketAddress insocket = (InetSocketAddress) ctx.channel()
|
.remoteAddress();
|
|
log.info("扦样机断开连接,IP={},port={}", insocket.getAddress()
|
.getHostAddress(), insocket.getPort());
|
if(LtCheckClientEngine.CHECK_MAC.get( insocket.getAddress().getHostAddress()) == null ){
|
LtCheckClientEngine.CHECK_MAC.put( insocket.getAddress().getHostAddress(),new LtCHeckMac());
|
}
|
LtCheckClientEngine.CHECK_MAC.get( insocket.getAddress().getHostAddress()).setSerStart(false);
|
|
}
|
|
@Override
|
public void channelRead0(ChannelHandlerContext ctx, Object msg)
|
throws Exception {
|
byte[] bytes = (byte[]) msg;
|
|
log.info("扦样机终端返回信息=" + BytesUtil.bytesToString(bytes));
|
|
InetSocketAddress insocket = (InetSocketAddress) ctx.channel()
|
.remoteAddress();
|
|
CheckAnalysis.analysisInfo(insocket.getAddress().getHostAddress(),
|
insocket.getPort(), bytes);
|
}
|
|
@Override
|
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) {
|
ctx.close();
|
}
|
|
}
|