Try client.read((char*)&len, 4);
Added after 4 minutes:
global int blockSize = 0;
...
while (clientConnection->state() != 0)
{
clientConnection->waitForReadyRead(1);
if (clientConnection->bytesAvailable() > 0)
{
if (blockSize == 0)
{
if (clientConnection->bytesAvailable() < sizeof( int ))
continue;
clientConnection->read( (char *)&blockSize, sizeof( int ) );
}
clientConnection->waitForReadyRead(1);
if (clientConnection->bytesAvailable() < blockSize)
continue;
char *msg = new char[ blockSize ];
memset( msg, 0, blockSize );
clientConnection->read( &msg[0], blockSize );
...
blockSize = 0;
}
}
global int blockSize = 0;
...
while (clientConnection->state() != 0)
{
clientConnection->waitForReadyRead(1);
if (clientConnection->bytesAvailable() > 0)
{
if (blockSize == 0)
{
if (clientConnection->bytesAvailable() < sizeof( int ))
continue;
clientConnection->read( (char *)&blockSize, sizeof( int ) );
}
clientConnection->waitForReadyRead(1);
if (clientConnection->bytesAvailable() < blockSize)
continue;
char *msg = new char[ blockSize ];
memset( msg, 0, blockSize );
clientConnection->read( &msg[0], blockSize );
...
blockSize = 0;
}
}
To copy to clipboard, switch view to plain text mode
Bookmarks