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

标签 go server host lan

我正在使用 iris 平台用 go 语言进行编程(我是初学者)。我想让我家里的所有计算机都可以访问本地计算机之一的 go 服务器。当我使用我的网络 IP (192.168.0.0) 或任何指定的 IP (192.168.0.15) 设置监听器时,它会返回 panic 错误。仅可用 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)

...

错误是:panic: listen tcp4 192.168.0.12:9999: bind: The requested address is not valid in its context.

感谢大家的帮助。

最佳答案

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

您监听的是端口,而不是 IP 地址。因此,无论您使用什么机器作为服务器,都可以找到您的本地 IP 地址:

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

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

然后用你的 Go 程序启动你的服务器并监听一个本地主机端口,比如 8080。

例如。

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

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

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

关于go - 如何设置仅适用于我的 LAN 网络的 golang 服务器监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40697131/

相关文章:

xml - 解码命名空间 XML 标签 - Golang

go - 试图安装 golang 命令,但它显示找不到命令

php - 将 PHP 脚本的响应打印到客户端

javascript - 无法访问 Express 中的 service-index 列出的文件

mobile - Nuxtjs : Expose localhost to external doesn't work

go - init 内部分配的值不维护该值

go - 如何在 erlang 或 elixir 中生成 n-k light-process?

php - Nginx connect() 失败错误

php - laravel undefined variable : host

registry - 如何在 Windows CE 5.0 设备上添加注册表项?