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 { 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(); } }