Я хотел бы реализовать доказательство концепции прозрачного прокси-сервера 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
Где моя ошибка?