天天看點

解決java.net.SocketException: Invalid argument or cannot assign requested address

今天發現facebook app讀取facebook上的api時發生以下錯誤:

java.net.SocketException : Invalid argument or cannot assign requested address

解法: linux系統下,照抄别人的方法 ======================================================================= 禁用IPV6,是比較好的解決方法.

修改 /etc/modprobe.conf 檔案,增加

alias net-pf-10 off

alias ipv6 off

這樣就不用增加參數 "-Djava.net.preferIPv4Stack=true ",重起即可. =======================================================================

java.net.SocketException: Invalid argument or cannot assign requested address

似乎就是無法通路端口。

經查,原來是ipv6的問題。如果系統安裝了ipv6,jdk就無法連接配接任何ipv4的主機了,于是出錯了。

解決方法是,在環境變量中加入:JAVA_OPTS="-Djava.net.preferIPv4Stack=true"

=======================================================================

在etc下面的profile檔案(字尾忘了,大概是cnf)中增加

export JAVA_OPTS="-Djava.net.preferIPv4Stack=true"

重新開機機器即可

大概意思就是說IPv6占用了端口,然後在環境變量中将IPv4置為啟動狀态

2.在你的機器上ping一下Socket要連接配接的那台機器看看能不能通,在用telnet連接配接一下主機的IP和端口試試,有可能兩台機器根本就不通啊。