Example usage for io.netty.handler.codec.socks SocksCmdRequest SocksCmdRequest

List of usage examples for io.netty.handler.codec.socks SocksCmdRequest SocksCmdRequest

Introduction

In this page you can find the example usage for io.netty.handler.codec.socks SocksCmdRequest SocksCmdRequest.

Prototype

public SocksCmdRequest(SocksCmdType cmdType, SocksAddressType addressType, String host, int port) 

Source Link

Usage

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   www  .j a  v a 2s  .co 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  ww .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.");
    }
}