使用 TCP 套接字,我的客户端/服务器会遇到这样一种情况,即从客户端发送消息,而服务器正在接收它们并将它们写入文件。我遇到的问题是由于某种原因,即使我将消息分开,它们都在一条线上被接收。
因此,例如..说我使用以下命令逐行发送文本文件:
socket->write(msg.toUtf8().constData());
socket->waitForBytesWritten(5000);
服务器有时会同时接收多条消息。
所以如果文本文件说:
你好,
这是客户
有时服务器会收到“你好,这是客户端”,当它们应该分开时一起接收两个消息。
有人可能会说我当时编码错了,但奇怪的是,如果我在本地测试客户端/服务器,一切都很完美。一旦我通过网络进行操作,这个问题就会开始发生。我做了一些测试,增加了发送消息之间的延迟。这也解决了问题,但只有在我将延迟增加到每条消息近 1 秒之后。如果需要发送大量消息,这是一个问题,每个 1 秒最终需要很长时间。