Android 网络:绑定失败:EADDRNOTAVAIL(无法分配请求的地址)

问题描述 投票:0回答:1

在我的应用程序中,一些片段在加载到活动中时启动 ServerSocket:

serverSocket = new ServerSocket();
serverSocket.setReuseAddress(true); //get ready to reuse this socket
serverSocket.bind(new InetSocketAddress(Inet4Address.getByAddress(wiFiComm.ipAdr), wiFiComm.port));

当fragment或Activity暂停或销毁时,ServerSocket关闭(网络在Activity内实现)。

它工作正常,您可以在片段之间切换,将应用程序发送到后台,终止应用程序等 - 套接字处理正确。唯一的例外:应用程序一段时间(1小时或更长时间)未使用后,有时无法绑定套接字。

可能是什么原因?

android android-networking
1个回答
0
投票

好的,“有时”是指当您离开 WiFi 网络(或在智能手机上禁用 WiFi)然后重新进入 WiFi 时。如果您有一个在前台运行服务器端口的应用程序,它会在您重新进入无线网络后抛出此异常。

© www.soinside.com 2019 - 2024. All rights reserved.