我的应用程序中有一个简单的 TCP/IP 客户端,它使用 a 将数据写入套接字PrintWriter
,当我通过 GUI 手动发送消息时它可以正常工作,但是当我循环时它不起作用。
A PrintWriter 在快速调用时会自行中断吗?
out.println(message);
out.flush();
编辑:不知何故,刷新速度不够快,因此客户端正在向服务器发送连接/多个字符串,而服务器无法处理它。
如果没有适当的 SSCCE,就很难知道这里到底发生了什么。但我怀疑延迟的根本原因在于 TCP/IP 堆栈和/或您的“网络”。
您对每条消息的激进刷新可能会导致 TCP 堆栈发送大量小型网络数据包。这可能会导致暂时的网络拥塞和数据包丢失。
如果这是问题所在(正如我所说......我们无法判断!)那么两个可能有帮助的选项是:
sendMessage
快速调用时会自行中断吗?
没有。
我需要休眠 500 毫秒才能让它发送所有消息。
这很可能也是不正确/不准确的,但是如果没有看到您的实际代码,就无法解释实际发生的事情。