This document provides an overview of socket programming concepts including: 1) Definitions of sockets, byte ordering, address transformation, and functions for getting information about remote hosts. 2) Socket system calls for creating and managing sockets including connect, bind, listen, accept, send, receive and close. 3) Examples of connectionless and connection-oriented client-server programs using UDP and TCP including iterative and concurrent server models.