2.4.4 代理一个TCP客户端(示例补充)

本文详细介绍了如何使用Go语言编写一个简单的TCP代理服务器,它能连接目标网站并转发客户端请求,同时展示了客户端如何连接到代理并接收数据。这个示例实现了基本的流量转发功能,可作为进一步开发的基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2.4.4 代理一个TCP客户端

在这里插入图片描述

不能直接访问的目标网站:
package main

import (
	"io"
	"log"
	"net"
)

// echo is a handler function that simply echoes received data.
func echo(conn net.Conn) {
   
	defer conn.Close()

	// Create a buffer to store received data.
	b := make([]byte, 512)
	//代理连接上目标网站
	if _, err := conn.Write([]byte("proxy success connect website")); err != nil {
   
		log.Fatalln("Unable to write data")
	}
	for {
   
		// Receive data via conn.Read into a buffer.
		size, err := conn.Read(b[0:])
		if err != nil && err != io.EOF {
   
			log.Println("Unexpected error")
			break
		}

		if err == io.EOF && size == 0 {
   
			log.Println("Client disconnected")
			break
		}

		log.Printf(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

newbie_______

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值