2012-07-11 78 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地址。