相关疑难解决方法(0)

如何在QTcpSocket中读取完整数据?

现在服务器(用java实现)会向我发送一些流数据,我的代码如下:

connect(socket, SIGNAL(readyRead()), this, SLOT(read_from_server()));
Run Code Online (Sandbox Code Playgroud)

read_from_server():

{
    while (socket->bytesAvailable())
    {
        QString temp = socket->readAll();
    }
}
Run Code Online (Sandbox Code Playgroud)

但我发现即使服务器发给我一个只有几个字符的字符串,数据被截断,我的函数被调用两次,因此temp是我想要的永不完整的数据.
如果服务器发给我一个更长的字符串,我的函数可能会被调用三次或更多次,这使得我很难知道数据完全被传输的时间.
所以任何人都可以告诉我如何轻松完全接收数据,没有这么多困扰的步骤?如果这与其他一些问题重复,我很抱歉,我无法让他们的答案适合我.非常感谢!

c++ qt qtcpsocket qt5

6
推荐指数
1
解决办法
2万
查看次数

标签 统计

c++ ×1

qt ×1

qt5 ×1

qtcpsocket ×1