2013-01-17 132 views
1

我以前曾使用Kryonet进行1对1通信,并且它工作得很好。Kryonet在客户端2连接后立即断开客户端1

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

我遇到的问题是在标题中描述:客户端1连接,没有问题。然后我要求客户端2连接并立即断开客户端1。不知何故服务器不想保持多个同时连接。

有几次,我们设法有2连接,然后每当第三次连接其他滴。

在几个不同的设备上运行所有ICS +(星系连接,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秒!很奇怪。

回答

0

谁可能会遇到同样的问题。

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

我刚搬来的Server代码到一个正常的Java应用程序.jar,让Android的客户端连接到PC,这一切现在工作正常。直到现在,测试6个设备连接没有问题。

+0

@ Budius你能分享你的应用程序的源代码吗?我想创建一个连接到服务器的应用程序3g – letroll

+0

嗨@letroll我什至不再在那个地方工作。但代码示例等可以在图书馆网站上找到:https://code.google.com/p/kryonet/ – Budius

+0

感谢您的链接,但没有只适用于Android的例子,所以我已经删除了所有的秋千的东西,并用小部件替代它们。但我的示例项目不起作用:( – letroll