2012-07-11 61 views
0

我在这行得到了一个错误:服务器端错误

new ServerSocket(2106, 50, InetAddress.getByName("83.4.200.1")); 

错误日志:

Exception in thread "main" java.net.BindException: Cannot assign requested address: JVM_Bind 

83.4.200.1是我的IP,当我把有127.0.0.1192.168.1.2具有相同的端口,一切都工作完美。我通过编写netstat -a -n来检查所有的端口,但是2106没有在那里。

非常感谢读这篇文章,我希望u能帮助我与我的问题

+0

我不在我的电脑上使用任何防火墙,我正在考虑我的路由器管理面板中的一些变化,但无法找到任何可以帮助我的东西:/ – user1451415 2012-07-11 17:58:40

回答

3

你的路由器的地址是83.4.200.1。请注意,这不是您的计算机响应的地址,而是内部网络地址192.168.1.2。如果您想从路由器外部连接到您的程序,则需要在路由器上为2106设置端口转发。

1

如果你想通过互联网与IP: "83.4.200.1"访问此服务器,那么它必须 是静态IP,而不是动态的。

2.尝试运行该代码分配给您的电脑在局域网中(ie. Without internet..JUST WITH WIRELESS CONNECTION).的私有IP地址或公共IP地址

私网IP或公网IP是没有意义的,直到和除非你在互联网上。那么你可以使用它作为它的局域网。

4.专用IP范围

A类: 10.0.0.0 - B 10.0.0.255 类别: 172.16.0.0 - 172.31.255.255 C类: 192.168.0.0 - 192.168.255.255

5.公众是由您的服务提供商给出的,这将是任何人在私人ip范围之外。如果你的ip不是静态的,你几乎没有或者没有机会通过互联网访问服务器,有一些网站会给你的动态IP提供静态ip。

1

83.4.200.1是我的IP

这是你的路由器的IP地址。

这不是你正在运行你的代码的主机的IP地址,所以你不能绑定它。您需要绑定到该主机的本地地址,并安排从路由器到您的主机的端口转发。大多数情况下,绑定地址最好全部省略,只需指定一个端口,在这种情况下,套接字将监听所有本地IP地址。