Chapter 23. Qt Network Programming

Until now, we have only talked about using Qt for GUI programming. This is Qt’s main mission, but you can also do other things with it. For example, you can write network applications with the Qt network extension. This extension includes a number of classes that provide portable access to TCP/IP sockets on a low level, some higher-level classes that let you access network resources by specifying URLs, and two classes that provide general URL manipulation.

To show how to write network programs with Qt, this chapter contains two sample programs, a simple HTTP server, and a simple download client. You’ll also find information about which classes are available and what they can do for you.

Low-Level Socket Access

The classes QSocket, QServerSocket, QSocketDevice, QHostAddress, and QSocketNotifier provide low-level, platform-independent access to TCP/IP sockets. Of these classes, QSocketDevice is rarely used because it only provides a thin layer around the operating system socket functionality. QSocketNotifier integrates a system socket into the Qt event notification system and event loop by emitting a signal when data can be read from or written to the socket. You do not need this class if you use QSocket or QServerSocket because these two classes have their own facilities for emitting signals (which in turn use QSocketNotifier internally).

This leaves QSocket, QServerSocket, and QHostAddress for the general cases. Of these classes, QSocket and ...

Get Programming with Qt, 2nd Edition now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.