解决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和端口试试,有可能两台机器根本就不通啊。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值