客户端2连接后,Kryonet将断开客户端1的连接

时间:2013-01-17 11:42:15

标签: android tcp kryonet

我之前曾与Kryonet进行过1对1的沟通,但效果很好。

现在我正在做一个更“标准”的项目,我们将有1个服务器和几个客户端连接到它。

我遇到的问题如标题所述:客户端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);而且我还使用com.esotericsoftware.minlog.Log.set(com.esotericsoftware.minlog.Log.LEVEL_TRACE);启用了Kryonet库中的所有日志,因此我可以看到它何时连接以及何时断开连接。

断开连接时收到两条不同的消息:

DEBUG: [kryonet] Connection 3 timed out.

DEBUG: [kryonet] Unable to read TCP from:

真的不确定这里有什么,我们将不胜感激。

修改 更多信息: 我已经意识到在INFO: [kryonet] Connection 3 connected: /192.168.0.104和我的听众之间收到connected回调,它需要大约9秒!很奇怪。

1 个答案:

答案 0 :(得分:0)

可能会遇到同样的问题。

显然这是Android限制(可能是因为它是移动设备而强加的)

我刚刚将Server代码移动到普通的Java应用程序.jar,让Android客户端连接到PC,现在一切正常。直到现在已经测试了6个没有问题的设备。