为了账号安全,请及时绑定邮箱和手机立即绑定

Golang 编写 net.Dial 响应浏览器

Golang 编写 net.Dial 响应浏览器

Go
临摹微笑 2021-08-16 18:34:40
我在玩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


查看完整回答
反对 回复 2021-08-16
  • 1 回答
  • 0 关注
  • 315 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信