当我连接到服务器套接字时,我想从输入流中读取。 但是消息之间可能存在一些延迟,如何在没有繁忙循环的情况下从输入流中读取?
string mes = socketReader.readLine();
当套接字输入流中没有提供输入时,上面的行返回null。 我希望以某种方式在输入流中准备好消息时收到通知。
TNX
答案 0 :(得分:2)
你看过asynchronous IO吗?
答案 1 :(得分:1)
在GUI上下文中,SwingWorker可能会有所帮助:让doInBackground()
进行阅读,使用process()
进行临时重播,然后done()
进行整理。您可以注册PropertyChangeListener
来启动进度指示器。这个article扩展了这个想法,并且可以使用back port到Java 1.5。这是一个simple example,它从JDBC源而不是流中读取,但想法是一样的。