@Override protected Object decode( ChannelHandlerContext ctx, Channel channel, ChannelBuffer buffer) throws Exception { if (buffer.readableBytes() < frameLength) { return null; } else { ChannelBuffer frame = extractFrame(buffer, buffer.readerIndex(), frameLength); buffer.skipBytes(frameLength); return frame; } }
@Override public ChannelPipeline getPipeline() throws Exception { final ChannelPipeline cp = Channels.pipeline(); cp.addLast(FRAME_DECODER, new FixedLengthFrameDecoder(8)); cp.addLast(HANDSHAKE, new Socks4HandshakeHandler(Socks4ClientBootstrap.super.getPipelineFactory())); return cp; } };
@Override public ChannelPipeline getPipeline() throws Exception { final ChannelPipeline cp = Channels.pipeline(); cp.addLast(FRAME_DECODER, new FixedLengthFrameDecoder(8)); cp.addLast(HANDSHAKE, new Socks4HandshakeHandler(Socks4ClientBootstrap.super.getPipelineFactory())); return cp; } };