List of usage examples for io.netty.handler.codec.socks SocksCmdResponseDecoder SocksCmdResponseDecoder
public SocksCmdResponseDecoder()
From source file:com.xx_dev.apn.socks.test.SocksClientHandler.java
License:Apache License
@Override protected void channelRead0(ChannelHandlerContext ctx, SocksResponse socksResponse) throws Exception { switch (socksResponse.responseType()) { case INIT: {//from ww w. ja v a2 s. c o m ctx.pipeline().addAfter("log", "cmdResponseDecoder", new SocksCmdResponseDecoder()); ctx.write(new SocksCmdRequest(SocksCmdType.CONNECT, SocksAddressType.DOMAIN, "www.baidu.com", 80)); break; } case AUTH: ctx.pipeline().addAfter("log", "cmdResponseDecoder", new SocksCmdResponseDecoder()); ctx.write(new SocksCmdRequest(SocksCmdType.CONNECT, SocksAddressType.DOMAIN, "www.baidu.com", 80)); break; case CMD: SocksCmdResponse res = (SocksCmdResponse) socksResponse; if (res.cmdStatus() == SocksCmdStatus.SUCCESS) { ctx.pipeline().addLast(new SocksClientConnectHandler()); ctx.pipeline().remove(this); //ctx.fireChannelRead(socksResponse); String s = "GET / HTTP/1.1\r\nHOST: www.baidu.com\r\n\r\n"; ctx.writeAndFlush(Unpooled.copiedBuffer(s, CharsetUtil.UTF_8)); } else { ctx.close(); } break; case UNKNOWN: ctx.close(); break; } }
From source file:org.msgpack.rpc.extension.socks.SocksProxyHandler.java
License:Open Source License
@Override protected void channelRead0(ChannelHandlerContext ctx, SocksResponse response) throws Exception { SocksResponseType rt = response.responseType(); switch (rt) { case INIT:/* w w w. j a va2 s. c o m*/ ctx.pipeline().addFirst("socks-cmd-decoder", new SocksCmdResponseDecoder()); InetSocketAddress addr = ((IPAddress) session.getAddress()).getInetSocketAddress(); SocksCmdRequest cmdSocks = new SocksCmdRequest(SocksCmdType.CONNECT, SocksAddressType.DOMAIN, addr.getHostName(), addr.getPort()); ctx.writeAndFlush(cmdSocks); break; case AUTH: break; case CMD: SocksCmdResponse scr = (SocksCmdResponse) response; ctx.pipeline().remove(this); ctx.pipeline().remove("socks-encode"); if (scr.cmdStatus() != SocksCmdStatus.SUCCESS) { throw new ChannelException("Socks faild."); } clientTransport.onSocksConnected(ctx.channel()); break; case UNKNOWN: default: throw new ChannelException("No support Socks Command."); } }