服务器套接字错误

时间:2012-07-11 17:55:46

标签: java ip serversocket ports inetaddress

我在这行中遇到错误:

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不存在。

非常感谢您阅读本文,我希望您可以帮我解决问题

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

1。如果您想通过互联网使用IP: "83.4.200.1" 访问此服务器,则必须    是你的静态IP,而不是动态的。

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

3。私有IP或公共IP没有任何意义,除非你在互联网上。直到那时你可以同时使用它作为局域网。

4. 私人广告系列

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

5. 公共服务提供商提供服务,该服务提供商将是私有IP范围内的任何人。如果您的IP不是静态的,那么您很难或没有机会通过互联网访问服务器,有些网站会提供动态IP的静态IP。

答案 2 :(得分:1)

  

83.4.200.1是我的IP

这是路由器的IP地址。

它不是您运行代码的主机的IP地址,因此您无法绑定它。您需要绑定到该主机的本地地址,并安排从路由器到主机的端口转发。通常最好省略bind-address,只需指定一个端口,在这种情况下套接字将监听所有本地IP地址。

相关问题