Tcp Golang向浏览器写入网络拨号响应

Tcp Golang向浏览器写入网络拨号响应,tcp,go,Tcp,Go,我正在玩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") 如何将响应传递到浏览器?或者我需要使用默认的Web服务器并复制响应主体吗?我真的很想用网络软件包什么

我正在玩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")
如何将响应传递到浏览器?或者我需要使用默认的Web服务器并复制响应主体吗?我真的很想用网络软件包什么的试试


从远程复制连接的thx使用2个带io.copy的GOROUTION

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
func copyContent(从,到net.Conn,完成){
_,err:=io.Copy(从,到)
如果错误!=零{

您是在http请求的上下文中执行此操作的,或者如果您是从头开始重写http堆栈,则是TCP连接,对吗?TCP连接和http响应都是
Writer
接口实现者。因此只需使用
Fprintf
-
w写入([]字节(err.String()))
而不是调用
log.Fatal
来看看简单的代理实现