下面是一个使用 Go 实现的简单 TCP 数据转发(代理)功能的完整源码。 这个程序监听一个本地端口,接受来自客户端的连接,然后将数据转发到指定的目标服务器,同时将目标服务器的响应返回给客户端。
功能概述
监听端口:程序在指定的本地端口(如 )监听传入的连接。9000
目标服务器:所有接收到的数据都会被转发到目标服务器(例如 )。example.com:80
双向转发:实现数据的双向转发,即客户端到服务器和服务器到客户端的数据都被转发。
并发处理:每个连接都会在单独的 Goroutine 中处理,确保高效并发处理多个连接。
完整源码
package main
import (
"flag"
"fmt"
"io"
"log"
"net"
"sync"