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。

非常感谢您阅读本文,我希望您能帮助我解决我的问题

4

3 回答 3

3

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

于 2012-07-11T18:17:10.113 回答
1

83.4.200.1 是我的 ip

它是您路由器的IP地址。

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

于 2012-07-12T00:21:11.877 回答
1

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

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

3.私有 ip 或公共 ip 没有意义,除非你在互联网上。直到你可以同时使用它们,因为它的局域网。

4.私有IP范围

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 不是静态的,那么您几乎没有机会通过 Internet 访问服务器,有些网站会从您的动态 ips 中提供静态 ip。

于 2012-07-11T18:54:02.587 回答