[Interest] QTcpServer memory usage

Bo Thorsen bo at fioniasoftware.dk
Tue Oct 16 16:00:04 CEST 2012


Den 16-10-2012 15:11, Lucas.Betschart at crypto.ch skrev:
> Hi everybody,
>
> What happens when I have a QTcpServer which gets a connection that writes much data to it (endless), but I never create a QTcpSocket (with QTcpServer::nextPendingConnection() ) and read this data?
> Will I the memory usage of my application increase endless? Or will the QTcpServer just throw away all the data?
>
> I have to open a port to start an other application, but I'm not interested in the data it sends.
>

There are finite buffers, so you won't run out of memory. But will the 
client think it's connected before you handle the next pending 
connection? I would have thought you had to create a QTcpSocket before 
the client was happy.

What I don't know is whether or not the client can continue to write 
after the buffer is full, or if it will receive a timeout.

If I were you, I'd probably play this safe and do the 
nextPendingConnection(), and call readAll() when data is ready. Then you 
can just safely forget the returned bytes in readAll.

What you're doing might work, but since it's a non-intended usage you 
might have some odd results. And those might even change between 
versions. Not caring in a nice way can let you stay out of trouble :)

Cheers,

Bo Thorsen.

Come by my DevDays talk in Berlin - "Designing for testability" - and 
learn how to build your unit tests into the Qt applications.

Fionia Software - Qt experts for hire.



More information about the Interest mailing list