我在玩net包,想做一个简单的代理。首先我在本地主机上做一个监听器,然后我拨打远程地址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")如何将响应通过管道传输到浏览器?还是我需要使用默认的网络服务器并复制响应正文?真想用net package什么的试试
1 回答
跃然一笑
TA贡献1826条经验 获得超6个赞
要从远程复制连接,使用 2 个 goroutine 和 io.Copy
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
- 1 回答
- 0 关注
- 315 浏览
添加回答
举报
0/150
提交
取消