我以前曾与Kryonet进行过一对一的交流,而且效果很好。
现在我正在做一个更“标准”的项目,我们将有一台服务器和几个客户端连接到它。
我遇到的问题如标题中所述:客户端 1 连接,没问题。然后我要求客户端 2 连接并立即客户端 1 断开连接。不知何故,服务器不想保持多个同时连接。
有几次我们设法连接了 2 个,然后每当第 3 个连接其他滴时。
在所有 ICS+(galaxy nexus、tab2、SGS3)的几个不同设备上运行。
我使用的代码与示例非常相似:
服务器端:
server = new Server();
ServiceData.RegisterKryo(server.getKryo());
server.addListener(new MyServerListener());
try {
server.bind(ServiceData.SERVER_PORT_TCP);
server.start();
} catch (IOException e) {
Log.e(TAG, "IOException. Failed to start server. " + e.getMessage());
MyServer.this.stopSelf();
}
然后客户端:
final String ip = intent.getExtras().getString(KEY_SERVER_IP);
listener = new MyClientListener();
client = new Client();
client.start();
ServiceData.RegisterKryo(client.getKryo());
client.addListener(listener);
try {
client.connect(5000, ip, ServiceData.SERVER_PORT_TCP);
} catch (IOException e) {
Log.e(TAG, "IOException. Failed to start client. " + e.getMessage() + "\n");
e.printStackTrace();
MyClient.this.stopSelf();
}
目前的听众是公正的Log.v(TAG, "something happened);
,我还启用了 Kryonet 库中的所有日志,com.esotericsoftware.minlog.Log.set(com.esotericsoftware.minlog.Log.LEVEL_TRACE);
这样我就可以看到它何时连接以及何时断开连接。
断开连接时我收到两条不同的消息:
DEBUG: [kryonet] Connection 3 timed out.
和
DEBUG: [kryonet] Unable to read TCP from:
真的不确定这里有什么,任何帮助将不胜感激。
编辑:
更多信息:我意识到在INFO: [kryonet] Connection 3 connected: /192.168.0.104
和我的听众收到connected
回调之间,大约需要 9 秒!很奇怪。