繁体   English   中英

Android bufferedReader.readLine持续监听

[英]Android bufferedReader.readLine for continuously listening

我正在尝试编写一个连接到服务器的演示应用程序,然后继续监听来自服务器的随机定时输入。 发现和连接到服务器的工作正常,现在我启动一个新线程,因此不会阻塞ui。 现在,在我的线程中,如果有传入的数据,我需要不断地侦听并做出反应。 根据我到目前为止所读的内容,应该这样做:

  while (connected) {
      while ((line = bufferedReader.readLine()) != null) {
          // do something with line and contact the ui
      }
  }

我不明白的是:readLine()显然只能在服务器接收到数据的情况下读取一行。 因此,一旦服务器停止发送(即什么也没有发送),循环就不应该中断吗?

谢谢任何想法,马库斯

readLine是一种阻塞方法,因此,如果什么都没有收到,它将在该处等待阻塞执行。 仅当接收到一个空值时,循环才会停止(读取文本文件时,这通常意味着已到达文件末尾)。

尝试以其他方式检测关闭的连接,或者如果您也对服务器进行编码,请尝试发送诸如“ END”之类的信息,该信息可以在客户端读取。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM