跳到主要内容
版本:4.0

Tcp端口转发

定义

命名空间:
TouchSocket
程序集:
安装:
dotnet add package TouchSocket

一、说明

NatService是具有转发功能的TCP服务器。他的职能是将收到的TCP数据转发到多个目标服务器。也能将多个目标服务器的数据转发到连接客户端。

二、常见使用场景

  • 调试场景在生产环境中,想要调试客户端,要么中断服务器,要么就将实际数据转发到Nat,然后在不影响实际场景的情况下进行调试。
  • 内网穿透场景一般tcp都会使用转发式的内网穿透。

要使用NatService进行网络地址转换(NAT),您需要遵循以下步骤来设置和运行服务。此示例是基于C#语言,并使用了TouchSocket库来简化网络编程。

三、创建服务

3.1 创建服务类

创建一个继承自NatService的类,并重写必要的方法。在这个例子中,我们创建了一个名为MyNatService的类。

🔄 正在加载代码...

3.2 创建会话客户端类

创建一个继承自NatSessionClient的类,并根据需要重写其中的方法。在这个例子中,我们创建了一个名为MyNatSessionClient的类。

🔄 正在加载代码...

四、使用

在主函数中初始化服务并开始监听指定端口。这里我们监听的是7788端口,并且设置了日志记录。

🔄 正在加载代码...
提示

NatService支持客户端适配器和Ssl。也支持IRequestInfo转发转发Ssl

五、实现一转多

NatService支持将客户端数据转发到多个目标服务器。实现方法也比较简单,只需要使用NatSessionClient直接进行添加目标客户端即可。

🔄 正在加载代码...

六、实现多转一

NatService支持将多个客户端数据转发到单个目标服务器。主要实现方式如下:

首先,需要独立初始化目标客户端,然后自行管理其创建和释放。

🔄 正在加载代码...

然后在NatSessionClient中再添加。

🔄 正在加载代码...
提示

使用静态类管理目标客户端,仅仅是演示目的。在实际使用时,可以考虑使用容器,更加方便地管理。

七、实现多转多

NatService支持将多个客户端数据转发到多个目标服务器。实现方法与实现多对一转发类似,只需要使用NatSessionClient将多个固定的目标客户端直接进行添加即可。

八、示例Demo