yoyo我需要帮助写一个代理服务器在去(不要紧,如果它是http或其他类型),使用现有的net.Conn连接,代理重定向到现有的net.Conn收到的每一个消息
如果这是不可能,是否可以使用现有net.conn而不是使用http.Client或其他工具发送http请求?n
我真的不擅长走,请发送帮助
Edit0:应该用作代理的底层net.conn来自snowflake,下面是提供的代码
package main
import (
"log"
sf "git.torproject.org/pluggable-transports/snowflake.git/v2/client/lib"
)
func main() {
config := sf.ClientConfig{
BrokerURL: "https://snowflake-broker.torproject.net.global.prod.fastly.net/",
FrontDomain: "cdn.sstatic.net",
ICEAddresses: []string{
"stun:stun.voip.blackberry.com:3478",
"stun:stun.stunprotocol.org:3478",
"stun:stun.altar.com.pl:3478",
"stun:stun.antisip.com:3478",
"stun:stun.bluesip.net:3478",
"stun:stun.dus.net:3478",
"stun:stun.epygi.com:3478",
"stun:stun.sonetel.com:3478",
"stun:stun.sonetel.net:3478",
"stun:stun.uls.co.za:3478",
"stun:stun.voipgate.com:3478",
"stun:stun.voys.nl:3478"},
Max: 1,
}
transport, err := sf.NewSnowflakeClient(config)
if err != nil {
log.Fatal("Failed to start snowflake transport: ", err)
}
// transport implements the ClientFactory interface and returns a net.Conn
conn, err := transport.Dial()
if err != nil {
log.Printf("dial error: %s", err)
return
}
defer conn.Close()
//--
// use conn here to make a proxy and skip the snowstorm closed beta
for {
}
}
字符串
1条答案
按热度按时间d7v8vwbk1#
好的,兄弟
下面是一个简单的示例程序
字符串
我们首先创建了一个监听端口8080的代理服务器。然后,我们使用Accept方法来接受客户端连接,并在每个连接上启动一个独立的goroutine来处理请求。
如果你不擅长围棋,你可能需要学习更多的基础知识。Go是一门很棒的语言,希望你会喜欢。
如果我的回答中有任何问题,请向我提出来