Golang реализует TCP-прокси

задняя часть Go
Golang реализует TCP-прокси

Это 25-й день моего участия в августовском испытании обновлений. Узнайте подробности события:Испытание августовского обновления

Если ❤️моя статья оказалась полезной, ставьте лайк и подписывайтесь. Это самый большой стимул для меня продолжать техническое творчество.Больше предыдущих статей в моей личной колонке

Golang реализует TCP-прокси

реализация tcp-прокси

построить tcp-сервер

адрес основного кодаGitHub.com/coder в/карма…

Шаги для создания TCP-сервера: 1. Служба мониторинга 2. Получите и создайте новый объект подключения и установите тайм-аут и поддержку активности. 3. Соединение закрывается при выходе из метода установки 4. Вызвать интерфейс обратного вызова TcpHandler

var (
	addr = ":2002"
)

type tcpHandler struct {
}

func (t *tcpHandler) ServeTCP(ctx context.Context, src net.Conn) {
	src.Write([]byte("tcpHandler\n"))
}

//tcp服务器测试
log.Println("Starting tcpserver at " + addr)
tcpServ := tcp_proxy.TcpServer{
    Addr:    addr,
    Handler: &tcpHandler{},
}
fmt.Println("Starting tcp_server at " + addr)
tcpServ.ListenAndServe()

контрольная работаtelnet 127.0.0.1 2002

создать tcp-прокси

адрес основного кодаGitHub.com/coder в/карма…

Шаги для создания обратного прокси-сервера TCP: 1. Прокси реализует структуру метода обратного вызова TcpHandler. 2. Подключитесь к нисходящей служебной информации 3. Установите соединение на закрытие при выходе 4, - чтение данных - запись данных

	//thrift代理测试
	rb := load_balance.LoadBanlanceFactory(load_balance.LbWeightRoundRobin)
	rb.Add("127.0.0.1:7002", "100")
	proxy := proxy.NewTcpLoadBalanceReverseProxy(&tcp_middleware.TcpSliceRouterContext{}, rb)
	tcpServ := tcp_proxy.TcpServer{Addr: addr, Handler: proxy,}
	fmt.Println("Starting tcp_proxy at " + addr)
	tcpServ.ListenAndServe()

команда win open telnet

В целом,TCP 测试方法а такжеhttp 测试Вопрос о том, может ли адрес прямого доступа возвращать успех, зависит от другого.

На что больше полагаются при разработкеTelnetПорт функционального тестирования доступен.

Если это mac/linux, вы можете установить его напрямую с помощью команды. А окно можно в настройках запросить启动或关闭windows功能открыть в спискеTelnetготовые к использованию

Тест с командойtelnet 127.0.0.1 7002