我在 go 中制作了一个充当代理的网络服务器。我需要获取有关客户的信息才能做出回应。 这是我的代码:
func main(){
li, err := net.Listen("tcp", ":8000")
if err != nil{
log.Fatalln(err.Error())
}
defer li.Close()
for{
conn, err := li.Accept()
if err != nil {
log.Fatalln(err.Error())
}
local := conn.LocalAddr
remote := conn.RemoteAddr
fmt.Println(string(local.Network))
fmt.Println(string(remote.String))
go handleConn(conn)
}
}
问题是当我运行时收到此消息:
local.Network undefined (type func() net.Addr has no field or method Network)
但是文档说 Addr 类型有这个方法
最佳答案
您不是在调用函数,在您的 local
变量中存储函数本身。
试试这个:
local := conn.LocalAddr()
remote := conn.RemoteAddr()
关于http - 如何在 GO 中获取 LocalAddress?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41556060/