Minor changes.

I've rearranged some code, pulling the frame processing code to a seperate function. This removes 2 indentation steps and hopefully makes things easier to understand. Logic was not changed.

The alignment issue is actually very easy to fix. Qt provides a function to parse byte data into numbers fixing its endian format.

Also, on UNIX, unit tests do not run because library is not found without either setting rpath or LD_LIBRARY_PATH. Since it's only unit tests, rpath is good enough.

Well I think it's pretty well assumed that _q_readyReady is meant to be "there is socket data available, try to read as many frames from it as possible," so I'm not sure its very confusing that its all in there. I'm just more concerned that you have to go look somewhere else one you get to _q_readyRead now, since there's only a single line of code there, it's more visual acrobatics and I think it would be more justifiable if there was more than one line of code left in _q_readyRead.

Anyway, yes as it stands you can still keep all the same code thats in the other method and just wrap it in a forever and this will work the same way.