我想在 Vert.x 中实现概念证明 TCP 透明代理。
要求
一个在端口 X 上侦听的 Verticle,当有人连接并发送数据时,它会打开一个指向预先配置的 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
我的错误在哪里?