所以我有一个应用程序可以在同一本地网络中相互通信 android 设备。它们通过建立与 serversocket 的连接、交换数据和关闭连接(每分钟)来定期相互交谈。
出于某种原因,它在前几次尝试中效果很好,然后他们开始每次都返回连接拒绝。谁能告诉我可能是什么原因?
我的代码很简单:
server = new ServerSocket(0);
while(true) {
Socket clientSocket = server.accept();
Log.d(TAG, "Incoming connection");
handleClient(clientSocket);
}
连接时:
Socket s = new Socket(si.getInet4Addresses()[0], si.getPort());
doStuff(s)
我有以下权限:
<manifest>
....
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<application
<activity>
...
<intent-filter>
...
</intent-filter>
</activity>
<service .. />
<receiver >
....
</receiver>
</application>
</manifest>
哦,我应该提到这一切都发生在服务中。