PrintWriter需要睡眠才能循环工作

时间:2013-11-09 00:12:05

标签: java android

我的应用程序中有一个简单的TCP / IP客户端,它使用PrintWriter将数据写入套接字,当我通过GUI手动发送消息时,它会产生罚款,但是当我循环时它不会发生任何问题。

PrintWriter在调用fast时会自动中断吗?

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

编辑:不知怎的,刷新怎么没有发生得足够快,所以客户端正在向服务器发送连接/多个字符串,服务器无法处理它。

1 个答案:

答案 0 :(得分:1)

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

你积极刷新每条消息可能导致TCP堆栈发送大量小型网络数据包。这可能会导致网络暂时拥塞和数据包丢失。

如果这是问题(正如我所说......我们无法分辨!)那么可能有用的两个选项是:

  • 不经常冲洗;例如每0.25秒一次。
  • 调整平台的TCP / IP堆栈......虽然这可能无法在普通应用中完成。

  

sendMessage在调用快速时会自行中断吗?

不。

  

我需要进入500毫秒的睡眠状态才能让它发送所有信息。

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