任何人都可以提供 Java 中的示例,或者建议实现一个从套接字异步读取行并将每行放入 BlockingQueue 的类。假设套接字已连接,并且 BlockingQueue 和使用者已经存在。
编辑:还有一件事,它需要能够在一段时间不活动后超时,并在命令下立即停止。
这不是家庭作业,我根本无法找到完整的例子来说明如何做好这件事,并且可靠。
非常感谢你。
任何人都可以提供 Java 中的示例,或者建议实现一个从套接字异步读取行并将每行放入 BlockingQueue 的类。假设套接字已连接,并且 BlockingQueue 和使用者已经存在。
编辑:还有一件事,它需要能够在一段时间不活动后超时,并在命令下立即停止。
这不是家庭作业,我根本无法找到完整的例子来说明如何做好这件事,并且可靠。
非常感谢你。
老实说,你听起来好像已经完成了这项工作。您需要做的就是创建一个 BlockingQueue 并有一个线程来处理它,我猜这就是您的消费者。假设您有一个 DataInputStream 'in'...
像这样的东西:
BlockingQueue<String> receivedQueue = new LinkedBlockingQueue<String>();
public void run()
{
while (true)
{
try
{
receivedQueue.put(in.readUTF());
} catch (EOFException e)
{
ch.getClient().disconnect();
break;
} catch (IOException e)
{
break;
} catch (InterruptedException e)
{
break;
}
}
theQueueProcessor.interrupt();
}