Question: I'm writing a program that uses QUdpSocket for transmitting data over the network. This is my first socket program, and I've come across an interesting problem called Endianness.

My actual question in, do I have to worry about Endianness when I'm using QNetwork as my sockets library? If I do have to worry, what do I have to do to properly avoid Endianness problems?

Answer: 
I know this was answered a long time ago, but I just thought I'd add to it.

Instead of using the endian conversion functions, you could use the [QDataStream](http://doc.trolltech.com/latest/qdatastream.html "QDataStream") functionality (with *any* QIODevice), which is *much* easier and more intuitive in my opinion. Of course, that would lock you into using the QDataStream on both the sender and receiver, but it's worth it for that case.

Example usage, for someone else's sample of sending an image:

`QDataStream & operator<< (QDataStream& stream, const QImage& image);`  

`QDataStream & operator>> (QDataStream& stream, QImage& image);`  

(Both of those are already implemented within Qt.)  

`QTcpSocket *tcp = ...;`  

`QImage img = ...;`  

`QDataStream(tcp) << img;`
Intel CPUs use little endian. Most everything else is big endian. The default network byte order is big endian.

To test if endianness is a problem, send the value 0x12345678 and check if it makes it as the same or 0x78563412. If the value on the receiving computer is the later value, then the endianness is not the same between the two systems.

Check [this wikipedia article](http://en.wikipedia.org/wiki/Endianness) for info on endianness.