1

任何人都可以提供 Java 中的示例,或者建议实现一个从套接字异步读取行并将每行放入 BlockingQueue 的类。假设套接字已连接,并且 BlockingQueue 和使用者已经存在。

编辑:还有一件事,它需要能够在一段时间不活动后超时,并在命令下立即停止。

这不是家庭作业,我根本无法找到完整的例子来说明如何做好这件事,并且可靠。

非常感谢你。

4

1 回答 1

0

老实说,你听起来好像已经完成了这项工作。您需要做的就是创建一个 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();
}
于 2011-03-18T19:35:48.223 回答