java - 使用 Pump 类的 Vert.x 中的简单 TCP 代理 (JAVA)

标签 java asynchronous tcp proxy vert.x

我想在 Vert.x 中实现一个概念验证 TCP 透明代理。

要求

在端口 X 上监听的 Verticle,当有人连接并发送数据时,它会打开一个客户端连接到预配置的 TCP 服务器。 从这一刻起,直到任何一个对等点关闭连接,一个双向 channel 被保持,数据在 channel 中上下流动,从客户端到服务器,反之亦然。

这是我的尝试,但没有用。

 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

我的错误在哪里?

最佳答案

我只是想念启动泵。然后就成功了。

Pump.createPump(socket, cliSocket).start();
Pump.createPump(cliSocket, socket).start();

关于java - 使用 Pump 类的 Vert.x 中的简单 TCP 代理 (JAVA),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13801598/

相关文章:

基本小程序的 Java 安全漏洞

javascript - Node.js 异步并行 "TypeError: task is not a function"

.net - API 设计中的异步抽象方法和派生类

java - 我可以在接受客户端套接字并建立连接后关闭 ServerSocket 吗?

java - Autowiring 时始终提供接口(interface)?

java - @Transient 注解如何获取它的值?

java - 构建一个监听数据库变化并调用其他方法的软件。我正在做正确的建筑吗?

c# - 使用 async/await 设置 Thread.CurrentPrincipal

python - 简单socket服务器的基本理解

delphi - 在delphi中建立tcp ip连接时无法读取消息