2013-02-12 3 views
1

У меня есть пример прокси-сервера netty. Однако я хотел бы знать, как реализовать клиента, чтобы поговорить с прокси-сервером. Решение, которое я реализую, является сервером, и ему необходимо подключиться к серверу сокетов всякий раз, когда клиент подключается к серверу. Каждый клиент, подключенный к серверу, сможет отправлять/получать данные с другого сервера.Netty Proxy server

Мне нужна помощь для реализации такой архитектуры с нетто, потому что серверная часть построена на нетти.

ответ

1

кажется, что вы хотите реализовать может быть в значительной степени отвечает за Netty proxy example

сегмент кода ниже показано, как можно подключиться к удаленному серверу, как только будет открыт новый канал клиента.

@Override 
public void channelOpen(ChannelHandlerContext ctx, ChannelStateEvent e) 
     throws Exception { 
    // Suspend incoming traffic until connected to the remote host. 
    final Channel inboundChannel = e.getChannel(); 
    inboundChannel.setReadable(false); 

    // Start the connection attempt. 
    ClientBootstrap cb = new ClientBootstrap(cf); 
    cb.getPipeline().addLast("handler", new OutboundHandler(e.getChannel())); 
    ChannelFuture f = cb.connect(new InetSocketAddress(remoteHost, remotePort)); 

    outboundChannel = f.getChannel(); 
    f.addListener(new ChannelFutureListener() { 
     public void operationComplete(ChannelFuture future) throws Exception { 
      if (future.isSuccess()) { 
       // Connection attempt succeeded: 
       // Begin to accept incoming traffic. 
       inboundChannel.setReadable(true); 
      } else { 
       // Close the connection if the connection attempt has failed. 
       inboundChannel.close(); 
      } 
     } 
    }); 
} 

После подключения к удаленному серверу, независимо клиент посылает (с помощью входящего канала) передаются на удаленный сервер (исходящий канал).

Я предлагаю вам следовать и реализовывать пример прокси-сервера, если вы еще этого не сделали.