By Wolfgang Keller
Originally written 2018-07-10
Last modified 2018-07-10
Table of contents
- A good classical text to learn the basics of network programming is the three-volume book series “TCP/IP Illustrated” by W. Richard Stevens.
- Another often recommended text to learn network programming under POSIX is Beej's Guide to Network Programming [visited 2018-07-10T13:30:52Z].
Nevertheless, under modern UNIX-like operating systems, one should in my opinion better use
epoll (Linux) or
kqueue (FreeBSD, OS X) instead of
for improved scalability. This is unluckily not considered in this text.
- When using Windows, it is best to use an I/O Completion Port (IOCP) for well-scaling network code. A good introductory presentation on the philosophy behind IOCP can be found at
- If you do not want to use WinAPI directly, but are also hesistant of using Qt, there also exist more thin wrappers for the WinAPI:
- One wrapper that was historically used a lot was MFC. Because it uses coding practises that are rather outdated, I would not recommend using it for new development.
- WTL is a wrapper for WinAPI that is used, for example, by Google Chome
(cf. The Weekly Source Code 33 - Microsoft Open Source inside Google Chrome
An introduction to WTL named “WTL for MFC Programmers” can be found at Code Project:
Two additional WTL tutorials by Michael Dunn:
A tutorial on how to create Ribbons using WTL: