Простой TCP-прокси в Vert.x с использованием класса Pump (JAVA)

Я хотел бы реализовать доказательство концепции прозрачного прокси-сервера TCP в Vert.x.

Требование

Вертикль, которая прослушивает порт X, и когда кто-то подключается и отправляет данные, она открывает клиентское соединение с предварительно настроенным TCP-сервером. С этого момента, пока какой-либо из пиров не закроет соединение, сохраняется двунаправленный канал, и данные идут вверх и вниз по каналу от клиента к серверу и наоборот.

Вот моя попытка, которая не работает.

 vertx.createNetServer().connectHandler(new Handler<NetSocket>() {
        public void handle(final NetSocket socket) {
            vertx.createNetClient().connect(6367, "localhost", new Handler<NetSocket>() {

                @Override
                public void handle(NetSocket cliSocket) {
                    Pump.createPump(socket, cliSocket);
                    Pump.createPump(cliSocket, socket);

                }
            });     
    }
    }).listen(3000);
}

По крайней мере, так я понял смысл класса Pump:

http://vertx.io/core_manual_java.html#pump

Где моя ошибка?


person sscarduzio    schedule 10.12.2012    source источник


Ответы (1)


Мне просто не хватало, чтобы запустить насосы. Тогда это сработало.

Pump.createPump(socket, cliSocket).start();
Pump.createPump(cliSocket, socket).start();
person sscarduzio    schedule 11.12.2012