go 实现内网穿透

go实现内网穿透

1. 实现思路

主要分为服务端客户端

  • 服务端
    • 主要有两个线程
      1. socket线程,负责和客户端的通信,将http线程的数据通过socket线程传递给客户端,
      2. http线程,负责接受http请求,将调用的数据传递给socket线程,等待socket线程的返回go结果。并将结果返回
  • 客户端
    • socket线程
      1. 和服务端建立连接,接受服务端的消息,看是什么方法,是get?还是post?客户端调用本地的映射地址。将调用的结果返回给服务端。

1.1 思维导图

https://www.processon.com/view/link/5fac01d5e401fd61d8c8f095

2.代码

客户端代码 github
服务端代码 github


版权声明:本文为daliucheng原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。