Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java PrintWriter需要睡眠才能循环工作_Java_Android - Fatal编程技术网

Java PrintWriter需要睡眠才能循环工作

Java PrintWriter需要睡眠才能循环工作,java,android,Java,Android,我的应用程序中有一个简单的TCP/IP客户端,它使用PrintWriter将数据写入套接字,当我通过GUI手动发送消息时,它工作正常,但当我循环时,它不工作 当调用fast时,打印机会自动中断吗 out.println(message); out.flush(); 编辑:不知何故,刷新速度不够快,因此客户端正在向服务器发送连接/多个字符串,而服务器无法处理它 没有合适的SSCCE,很难知道这里到底发生了什么。但我怀疑延迟的根本原因是TCP/IP堆栈和/或您的“网络” 您对每条消息的

我的应用程序中有一个简单的TCP/IP客户端,它使用
PrintWriter
将数据写入套接字,当我通过GUI手动发送消息时,它工作正常,但当我循环时,它不工作

当调用fast时,打印机会自动中断吗

   out.println(message);
   out.flush();

编辑:不知何故,刷新速度不够快,因此客户端正在向服务器发送连接/多个字符串,而服务器无法处理它

没有合适的SSCCE,很难知道这里到底发生了什么。但我怀疑延迟的根本原因是TCP/IP堆栈和/或您的“网络”

您对每条消息的攻击性刷新可能会导致TCP堆栈发送大量小的网络数据包。这可能会导致暂时的网络拥塞和数据包丢失

如果这就是问题所在(正如我所说……我们不知道!),那么有两个可能有用的选择:

  • 减少冲洗次数;e、 g.每0.25秒一次
  • 正在调整平台的TCP/IP堆栈。。。虽然这在普通的应用程序中可能无法实现

调用fast时,
sendMessage
是否自行中断

   out.println(message);
   out.flush();
没有

我需要睡眠500秒才能让它发送所有信息


这很可能是不正确的/不准确的,但是如果没有看到您的实际代码,就无法解释实际发生的情况。

您缺少了其余的代码和一个最小的测试用例。代码太大,无法在此处发布,但我想您已经回答了我的问题。因为代码正在刷新,没有错误。如果PrintWriter刷新无法自行中断,则一定是网络或服务器端错误,因此感谢您提供的信息。我还是发布了tcp代码。它只是包装在一个集装箱里。