hppt,一种通过任意网络媒介打通两台机器间 TCP 网络连接的方案

比如说,A 、B 两台机器不互通,但是 A 、B 都可以访问机器 C 上的 kafka ,那就可以用这个工具,通过 kafka 搭一个桥梁,使得 A 能访问 B 上任意的 TCP 端口。

首先clone本项目到本地,

github地址 GitHub - codingmiao/hppt: 一款可通过任意协议转发tcp端口的工具

gitee地址 hppt: 一款可通过任意协议转发tcp端口的工具

再mvn clean install把项目安装到maven本地仓库。

然后新建一个java工程,引入hppt-run以及kafka等maven依赖

        <dependency>
            <groupId>org.wowtools.hppt</groupId>
            <artifactId>run</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <!--继续添加其他依赖-->

然后就可以编写代码了:

编写一个服务端实现并在机器B上运行,你需要实现如下方法:

public class ServerDemo extends ServerSessionService<T> {

    public ServerDemo(SsConfig ssConfig) {
        super(ssConfig);
    }

    //初始化时需要做什么
    public void init(SsConfig ssConfig) throws Exception {
    }

    //怎样发送字节到客户端
    protected void sendBytesToClient(T ctx, byte[] bytes) {
    }

    //收到客户端的字节时,主动去调用receiveClientBytes(CTX ctx, byte[] bytes)

    //当客户端断开时需要做什么
    protected void closeCtx(T ctx) throws Exception {
    }

    //当本服务端关闭后,在此释放掉连接池等资源
    protected void doClose() throws Exception {
    }
}

完整的示例实现请参考这里

编写一个客户端实现并在机器B上运行,你需要实现如下方法:

public class ClientDemo extends ClientSessionService {
    public ClientDemo(ScConfig config) throws Exception {
        super(config);
    }

    //怎样连接到服务端
    protected void connectToServer(ScConfig config, Cb cb) throws Exception {
    }

    //怎样发送字节到服务端
    protected void sendBytesToServer(byte[] bytes) {
    }

    //收到客户端的字节时,主动去调用receiveServerBytes(byte[] bytes)
}

完整的示例实现请参考这里

随后,你就可以通过访问A的10022端口,来连接B上的SSH 22端口了。

总结:本文以kafka为例,介绍了如何通过hppt工具,打通两个无法连通的网络间的TCP连接。

另外,hppt也提供了常用的http、websocket协议支持,无需编写代码即可实现网络打通。

详见:

github

gitee

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值