[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-devel
Subject:    Re: How to move large data inside a protocol over tcp using Qt/KDE?
From:       "Friedrich W. H. Kossebau" <kossebau () kde ! org>
Date:       2008-09-19 11:34:50
Message-ID: 200809191334.51311.kossebau () kde ! org
[Download RAW message or body]

Am Freitag, 19. September 2008, um 08:29 Uhr, schrieb Thiago Macieira:
> Friedrich W. H. Kossebau wrote:
> >The protocol is a custom one, so I thought I just use QDataStream on
> >QTCPSocket everywhere. But how will this work if the data doesn't come
> > as fast over the network as the other side reads it, so the buffer is
> > underrun? (Or is this no problem, does QDataStream just wait? I found
> > no hint to a Timeout, which would be nice to have, then). The Qt
> > examples do not seem to use QDataStream that way, too.
>
> QDataStream wants the entire datastream block before you start reading. If
> you are *sure* you received everything that QDataStream wrote, you can
> use it. That's usually done by placing a size marker at the beginning of
> the data, before the datastream itself.

Okay, so I understand the docs correctly.

Hm. Involves another copy of the data. Now, if I buy into this, I still have 
the problem to calculate the size on the sender side:
Is there a way to do get the streaming size of a data structure _before_ I 
stream it with QDataStream? (If not, I would like to request this feature).

> Otherwise, I'd recommend just using raw data. Don't use QDataStream.

Buhu :( 

Thanks for the answer, even if it does not please me ;)

I think it would be very cool if there will be a mechanism one day in Qt which 
is also able to read data structures from such sequential waiting-involved 
data sources, with an easy API for the Qt user, please note this somewhere at 
Qt Software :) QDataStream looked so nice, now I feel really uneasy having to 
do all the lowlevel work myself ;)

Now I see that even QFile is also not really QDataStream-safe, as I have 
thought before (as in "not thought about"). Ouch.

Cheers
Friedrich
-- 
Okteta - KDE 4 Hex Editor - http://utils.kde.org/projects/okteta
 
>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic