[Qt-interest] QTcpSocket Problems to transfer data

Gustavo Walbon gustavowalbon at gmail.com
Mon Jan 17 14:06:02 CET 2011


Hi!

My problem consists in transfer data through tcp connection, I used the
fortune client and
fortune server examples, I sent data, but wrong data. Nothing error was
found during transfer.

Part of code:

*//Client*
void RemoteAcessClient::readStreaming(QString Address, int Socket)
{
    blockSize = 0;
    TcpSocket->abort();

    TcpSocket->connectToHost(Address,Socket);

    QDataStream in(TcpSocket);
    in.setVersion(QDataStream::Qt_4_6);

    DataNode Dados;

    if (blockSize == 0) {
        if (TcpSocket->bytesAvailable() < (int)sizeof(quint16))
            return Dados;
        in >> blockSize;
    }

    if (TcpSocket->bytesAvailable() < blockSize)
        return Dados;

    in >>  Data1 ;       // Float Data
    in >>  Data2 ;       // Float Data
    in >>  Data3 ;       // Float Data
    in >>  Data4 ;       // Float Data

}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

*//Server*

void RemoteAcessServerThread::run()
{
    QTcpSocket tcpSocket;

    if (!tcpSocket.setSocketDescriptor(socketDescriptor)) {
        emit error(tcpSocket.error());
        return;
    }

    QByteArray block;
    QDataStream out(&block, QIODevice::WriteOnly);
    out.setVersion(QDataStream::Qt_4_6);
    out << (quint16)0;

    out << Data1 ;       // Float Data
    out << Data2 ;       // Float Data
    out << Data3 ;       // Float Data
    out << Data4 ;       // Float Data

    out.device()->seek(0);
    out << (quint16)(block.size() - sizeof(quint16));

    tcpSocket.write(block);
    tcpSocket.disconnectFromHost();
    tcpSocket.waitForDisconnected();
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.qt-project.org/pipermail/qt-interest-old/attachments/20110117/373fa2c3/attachment.html 


More information about the Qt-interest-old mailing list