我想在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
我的错误在哪里?
答案 0 :(得分:5)
我只是缺少启动泵。然后它奏效了。
Pump.createPump(socket, cliSocket).start();
Pump.createPump(cliSocket, socket).start();