Linux Network Programming Guide: A Deep Dive into Socket Programming
This guide provides a comprehensive explanation of Linux network programming, focusing on socket programming. The author notes that many online resources lack clarity and sample codes often only cover the basics, hence the creation of this tutorial, offering clear guidelines and numerous examples. Topics covered include socket types, addressing, APIs (getprotobyname(), getservbyname(), getaddrinfo(), htonl(), htons(), ntohl(), ntohs(), socket(), setsockopt(), bind(), listen(), accept(), connect(), recv(), send(), close()), client-server models (simple HTTP client, TCP-based client-server, multithreaded TCP client-server, UDP-based client-server), advanced techniques (non-blocking sockets, synchronous I/O multiplexing with select() and poll(), broadcasting messages), and secure networking with libcurl and OpenSSL.