- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试制作一个简单的聊天服务器/客户端应用程序。我的服务器是用 python 制作的,使用了 twisted。一切正常,用 telnet 测试过。
基本上,服务器会将收到的每条消息发送给它的所有客户端。我需要一种从套接字中永远读取的方法,以便我可以获得所有消息。我不认为这是最好的方法,但我尝试使用一个线程来实现它,该线程永远(现在)读取。客户端连接到服务器后,它将启动一个线程,该线程将永远检查更新。
这是我实现 Runnable 的 CheckUpdates 类:
class CheckUpdates implements Runnable{
@Override
public void run() {
Log.d("ME", "CHECKING FOR UPDATES");
while(true)
{
// reader.lines().forEach(System.out.println);
String line;
Log.d("ME","IN WHILE");
try {
while ((line = reader.readLine()) != null) {
Log.d("ME", "READING LINE");
Looper.prepare();
Toast.makeText(MainActivity.this, line, Toast.LENGTH_SHORT).show();
Looper.loop();
}
} catch (IOException e) {
Log.d("ME", "EXCEPTION IN WHILE: " + e.getMessage().toString());
}
Log.d("ME", "END OF WHILE CHECK UPDATES");
}
}
}
我在连接到服务器后立即启动线程。基本上,我收到了第一条消息(第一个 toast ),紧接着,没有其他消息进来,甚至 END OF WHILE CHECK UPDATES logcat 消息也没有。
它是否会永远卡在 while 从 socket 检查换行的过程中?此外,如果有更优雅的方式来做到这一点,如果有人能指出我正确的方向,我将不胜感激。
最佳答案
Could it get stuck forever in the while that checks for a new line from socket ?
不,但它可能永远卡在外部 while (true)
循环中,这是完全没有意义的。去掉它。此刻你在流的尽头永远循环。
关于java - 永远从 socket bufferreader 读取 android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27542808/
我有一个可以将某些字符加粗的函数。一切工作正常,除了我在方法开始时的字符串被剪切到某处并返回一半,而不是作为开始时得到的整个字符串。这是代码,我不知道我的错误在哪里。 public String bo
我正在从输入(IDE eclipse Luna)输入行,按下回车键,光标一直向下移动,但没有输出显示。在尝试的第二种方法中,但我必须按两次 enter 才能打印输出,我该如何修复这两个错误。为什么在第
我有一个有点简单的服务器,这意味着我正在尝试通过使服务器尽可能面向对象来学习不同的设计模式。令人惊讶的是,在我创建方法 close() 之前我还没有遇到过一个问题。 很明显,当客户端关闭与数据库的连接
我正在尝试使用 BufferReader 填充二维数组,它成功填充了数组的所有行,除了最后一行之外。我尝试将循环增加一以解决该行,但出现索引越界错误。我怎样才能显示最后一行? public stati
我有这个简单的方法: private String read(String filePath) throws IOException { FileReader fileReader = new
我有一个问题正在解决。我必须使用 bufferedReader 将单词添加到树集中(并输出树集的大小),但问题是我无法通过编译器速度测试限制。文本仅包含字母和空格(可以是空行)。我必须找到一个新的解决
我使用 while 循环逐行搜索文件中的内容,直到找到字符串“MATCH”。但是当在另一个函数中我需要再次使用 BufferReader 时,它会引用文件末尾还是从文件开头开始? Public Str
我正在尝试处理我用 BufferReader 读取的 html,如下所示: try { HttpResponse response = DisplayMessageAc
是否可以为缓冲区读取器设置多个标记,以便我可以多次预读? 所以我的代码比较长,但基本思路是在设置一个我将要返回的标记之后,我提前阅读。我的代码检查此“前面”行是否满足某些条件,如果满足,它会在返回初始
全部,我正在尝试读取一个将由多个线程写入的文件,我将使用 BufferedReader 在一个线程中读取该文件。 代码如下所示。 FileReader reader = new FileReader(
java BufferReader 有一个方法 readLine 读取到 '\n' 或 '\r' 是读取然后返回行字符串。示例: InputStreamReader isr = new InputSt
使用以下代码将读取器的输出拆分为字符串,然后在构造函数中使用这些字符串。但是,当 bufferreader 到达流的末尾时,它会输出 null,这会导致构造函数中出现空指针异常。 List resul
我可以看到以下两个程序之间的性能差异巨大。 import java.io.*; import java.util.Date; class SkipProg2 { public static vo
我正在使用 java 中的 HttpURLConnection 读取一个大型 xml 文件,如下所示。 StringBuilder responseBuilder = new StringBuilde
I wrote some program that has to receive and send messages. But I have some troubles with streams
我正在尝试从文本文件中提取特定数据。我使用 bufferreader 逐行读取文件,以便我可以处理该行。 以下是我编写的代码: File CAD = new File (filename);
我正在制作一个 HTTP 服务器和 HTTP Web 客户端,用于简单的 Http 请求和响应。 这是服务器的代码 import java.io.*; import java.net.*; impor
如何使用 FileReader 而不是使用 BufferReader 我想将 File,FileReader 用于此从 ftp 读取文件的程序 public class FileReader
我是java新手,我尝试用TCP Socket编写一个简单的客户端服务器,但经过几天的努力后我遇到了麻烦,我无法解决这个问题。 我使用 BufferReader.Readline(); 得到 null
我正在制作一个游戏,直到用户在命令行中输入退出为止。 用户可以输入不同的命令,例如 get 和 go,使用 get 命令,用户可以说出想要什么,获取棒球棒。我在代码中所做的就是拆分命令。 一切工作正常
我是一名优秀的程序员,十分优秀!