如何设置仅适用于我的 LAN 网络的 golang 服务器侦听器

And*_*vic 2 lan host go server

我正在使用 iris 平台用 go 语言进行编程(我是初学者)。我想让我家里的所有电脑都可以访问 go 服务器,它也是本地机器之一。当我使用我的网络 IP (192.168.0.0) 或任何指定的 IP (192.168.0.15) 设置侦听器时,它会返回恐慌错误。仅可用 0.0.0.0 或 127.0.0.1/localhost 或 192.168.0.19 - 与 localhost 相同

import "net"

...

ln, err := net.Listen("tcp4", "192.168.12:9999")
    if err != nil{
        panic(err)
    }

    iris.Serve(ln)

...
Run Code Online (Sandbox Code Playgroud)

错误是:panic: listen tcp4 192.168.0.12:9999: bind: 请求的地址在其上下文中无效。

感谢大家的帮助。

nos*_*bee 5

您应该阅读有关网络如何工作的内容,但这里有一些要点可以帮助您入门。

您侦听端口,而不是 IP 地址。所以无论你使用什么机器作为你的服务器,找到你的本地 IP 地址:

在 Linux 或 Mac 上,您可以通过多种方式执行此操作:

ifconfig | grep netmask 并获取您的本地地址,例如。 192.168.x.xx

然后用你的 Go 程序启动你的服务器并监听 localhost 端口,比如 8080。

例如。

if err := http.ListenAndServe(":8080", nil); err != nil {
    //handle error
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用家中的其他机器访问服务器,假设它们在同一个 Wifi 上。使用不同的计算机并192.168.x.xx:8080从浏览器访问。

为了在您的评论中回答您的问题,外部人员无法访问您的本地服务器,除非他们连接到您的 Wifi。