android java 在同时支持ipv4 与 ipv6 状况下,仅支持ipv4 或 ipv6的方法(测试中)

  最近一个android项目,采用mina框架搭建tcp服务端,最开始一切正常,可在调试过程中发现,apk下载安装过程中有时客户端连接不上,找了很久,最后通过adb shell去查询当前网络状态,(netstat -ano | grep 8855) 发现端口被ipv6的地址占用着,原因找到了,但造成这bug的原因却没理明白,一开始想法简单,被ipv6占用就禁用掉ipv6呗,网上找了android下禁用ipv6的方法,但比较麻烦,最后找了个工具禁用ipv6,但效果一般。

后面觉得奇怪,没去创建ipv6的连接怎么会有这样的连接呢,还是绑定到我们使用到的端口,可以确定是程序方面的问题。通过百度发现这篇文章:

        http://blog.csdn.net/wirelessqa/article/details/8218178;才明白确实如我所想的,java网络中如果支持ipv4与ipv6,那么会创建ipv6的连接,接下来又找到了一篇在eclipse下设置的文章:http://www.thinksaas.cn/group/topic/336586/

Window--Preferences--JAVA--Installed JREs--选中JDK--EDIT

Deault VM Arguments:-Djava.net.preferIPv4Stack=true



 


OK,下载测试,发现新建只有ipv4,当然可能是几率原因,还需多次测试,后续结果会再补充。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值