2016-11-19 11 views
-2

我正在使用iris平台在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如何将golang服务器侦听器设置为仅用于我的LAN网络

import "net" 

... 

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

    iris.Serve(ln) 

... 

的错误是:恐慌:听TCP4 192.168.0.12:9999:绑定:请求的地址是不在其上下文中有效。

感谢大家的帮助。

+7

我很肯定你应该在开始写服务器之前学习一下网络是如何工作的。您不能将侦听器绑定到未分配给服务器的IP。 –

+0

是的,我在网络方面不是很好。但我也没有写服务器,我的意思是我这样做,但这不是一个目标。我需要用一种可以满足请求的语言来构建应用程序。要设置侦听器,只需在主方法的末尾放入iris.Listen(“:9898”)行即可。它将承载全球服务(0.0.0.0:9898)。我只想找出有什么办法来限制外部访问?或者可能有没有从我的局域网外访问? –

+0

Forst我同意@RomanR。其次,如果你使用的是WiFi,并且你的本地主机上运行了你的服务器(就像你所想的那样),你可以从任何连接到同一个WiFi的设备访问该服务器,通过访问该机器的本地主机。 – reticentroot

回答

2

你应该了解网络如何工作,但这里有一些要点让你开始。

您在端口上监听,而不是IP地址。所以,你正在使用的服务器的任何机器,找到你的本地IP地址:

在Linux或Mac,你可以做很多:

ifconfig | grep netmask,让你的本地地址如。 192.168.x.xx

然后用你的围棋程序启动你的服务器,并监听本地主机端口像8080

如。

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

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

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

相关问题