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(