I would like to send/recieve image files and 2 ints as messages in a client server program.

I'm using `QLocalSocket` and `QImage` for this.

However I don't know how to read from the socket only after the image and the integers are fully written to the buffer, since the `readyRead` signal is already fired after the first couple of bytes.

Here's parts of my code:

```
// sending
QDataStream stream(socket);
stream << image << i << j;

// recieving
void MainWindow::readyRead() {
    // ...
    if (socket->bytesAvailable() > 400)
    {
        QByteArray b = socket->readAll();
        QDataStream stream(&b, QIODevice::ReadOnly);

        QImage image;
        int i, j;
        stream >> image >> i >> j;
    // ...
    }
}

```

I tried guessing the incoming file size, but since QImage is serialized to PNG the data size is variable and sometimes the end of the file doesn't get written to the buffer before I start to read it.

Is there an easy solution to this?