[Qt-interest] Transferring a QPixmap through QTcpSocket

Joshua W Joseph joshua at blueprint-group.co.ke
Thu Apr 7 13:00:56 CEST 2011


Hi All,

I have two simple applications which are network based. The 'server' takes a
screenshot of its computer. When a 'client' connects, it will receive the
captured image. These are basically the fortune server/client examples
modified to transmit images instead of text.

Here is my code for sending the image:

      QByteArray block;

    QDataStream out(&block, QIODevice::WriteOnly);

    out.setVersion(QDataStream::Qt_4_0);

    out << (quint16)0;

    out << originalPixmap;

    qDebug() << "Pixmap Sent";

    out.device()->seek(0);

    out << (quint16)(block.size() - sizeof(quint16));

    QTcpSocket *clientConnection = tcpServer->nextPendingConnection();

    connect(clientConnection, SIGNAL(disconnected()),

            clientConnection, SLOT(deleteLater()));

    clientConnection->write(block);

    clientConnection->disconnectFromHost();


And here is my code for reading it

     QDataStream in(tcpSocket);

    in.setVersion(QDataStream::Qt_4_0);

    if (blockSize == 0) {

    if (tcpSocket->bytesAvailable() < (int)sizeof(quint64))

            return;

        in >> blockSize;

    }

    if (tcpSocket->bytesAvailable() < blockSize)

        return;

    QPixmap nextPixmap;

    in >> nextPixmap;

    originalPixmap = currentPixmap;

    updateScreenshotLabel();

    getFortuneButton->setEnabled(true);

    received = false;


The client receives some data, but how to I:
    1. Ensure that all of the sent data is received, and
    2. Convert the received data into a QPixmap so that it can be displayed.

I know it sounds simple but i have racked  my brains for several days now
and I just cant seem to get it. Please assist.

Thank you in advance,

Joshua W.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.qt-project.org/pipermail/qt-interest-old/attachments/20110407/980ff852/attachment.html 


More information about the Qt-interest-old mailing list