我正在玩网络套餐,我想制作一个简单的代理。 首先我在localhost上创建一个监听器,然后拨打远程地址
remote, err := net.Dial("tcp", "google.com:80")
if err != nil {
log.Fatal(err)
}
defer remote.Close()
fmt.Fprint(remote, "GET / HTTP/1.0\r\n\r\n")
如何将响应传递给浏览器?或者我是否需要使用默认的Web服务器并复制响应正文?我真的想用网络软件包或其他东西来试试
THX
答案 0 :(得分:0)
要从遥控器复制连接,请使用带有io.Copy的2个goroutine
func copyContent(from, to net.Conn, done chan bool) {
_, err := io.Copy(from, to)
if err != nil {
done <- true
}
done <- true
}
// in the main func
done := make(chan bool, 2)
go copyContent(conn, remote, done)
go copyContent(remote, conn, done)
<-done
<-done