Привязка сокета к локальному адресу. Теперь вызывается функция bind() для назначения сокету локального адреса. Создается локальный адрес с помощью функции sockaddr_in(), для указания порта передается значение выбранного нами приватного эхо- порта, а в качестве IP-адреса указывается inaddr_any. Адрес inaddr_any действует как символ шаблона. Он позволяет операционной системе принимать соединения по любому из IP-адресов хоста (включая адрес петли обратной связи и адреса любых сетевых плат, которые могут быть в нем установлены).
Вызов функции listen() для подготовки сокета к приему входящих запросов на установление соединений вызывается функция listen(), которая сообщает операционной системе, что данный сокет будет применяться для входящих соединений. Функция listen() принимает два параметра. Первым является дескриптор файла сокета, а вторым — целое число, указывающее количество входящих соединений, которые могут быть поставлены в очередь для ожидания обработки. Очень часто несколько клиентов пытаются подключиться примерно в одно и то же время; этот параметр определяет максимально возможное число соединений, ожидающих обработки. В этом случае применяется константа SOMAXCONN, определенная в модуле Socket, которая указывает максимальное число поставленных в очередь соединений, допускаемое операционной системой.
Вход в главный цикл. Основную часть этого кода составляет главный цикл сервера, в котором сервер ожидает и обслуживает входящие соединения.