可用对象当Server
和Client
使用字符串进行通信(使用BufferedReader
和PrintWriter
类)时,BufferedReader
类有一个叫做ready()
方法,这意味着有等待客户端抓住和串处理。这种方法也使服务器与2个线程,这是我想要实现的。检查从插座中使用的ObjectInputStream
当使用ObjectInputStream
和ObjectOutputStream
类,OIS
类不具有“准备就绪()”方法,代替它具有所谓的“可用的()”,它返回可用的字节数被处理方法。问题是,available()
方法返回0,每次和OIS缺乏“准备就绪()”方法使服务器是多线程(线程1为每个连接加上主线程),这不是我想要的。
那么,有没有一种方法来检查Server
是否已经“收到”来自ObjectInputStream
在Socket
的Object
,而无需创建并保持一个Thread
为每个连接?
如果你不希望一个线程每客户端比,使用NIO,它使用一个选择器来查看数据是否可用,或者连接可用。您将'Selector'注册到套接字。然后,您有1个线程检查选择器是否有可用的键。我有一个如何建立一个选择[这里](http://stackoverflow.com/questions/24616774/non-socket-based-java-server/24617983#24617983) – 2014-11-06 00:10:33
@VinceEmigh这是很好的一个例子。我需要看看一些API,但这肯定有帮助。谢谢。 – 2014-11-06 00:17:08