Android 关于java.net.BindException: bind failed: EADDRINUSE (Address already in use)

今天,在做一个关于wifi的小功能的时候碰到了一个问题。。。网上找了半天资料但是和我的问题都不相符,所以写下篇文章记录一下。

	if (iAddress == null) {
			iAddress = InetAddress.getByName(String.format("%d.%d.%d.%d",
					(ipAddress & 0xff), (ipAddress >> 8 & 0xff),
					(ipAddress >> 16 & 0xff), (ipAddress >> 24 & 0xff)));
		}
		return iAddress;

可见上面的代码只是一个返回InetAddress的方法,但一次进程序时不会报错,第二次就会报错,错误信息为

java.net.BindException: bind failed: EADDRINUSE (Address already in use);

第一反应就是赶紧上网找答案,但是网上搜索到的大部分都是说udp的。


后来我就自己思考了一下,这个异常报的是端口已绑定,网上的意思大部分就是说之前绑定过退出程序时没有解绑定。。。可是我也不知道怎么解除绑定啊


然后后来我试验了一下在service里绑定。。。然后就没然后了,运行成功。

记录一下

你可能感兴趣的:(android,异常)