Обычный сервер с ветвлением имеет более высокий уровень сложности. В этой версии для выполнения таких основных задач сетевого демона, как автоматический переход в фоновый режим, запись PID в файл и смена назначения вывода функции warn () и die () с тем, чтобы сообщения об ошибках появлялись в системном журнале, применяется модуль Daemon, представленный ранее. Модуль Daemon обеспечивает также автоматическую установку обработчика сигнала, чтобы не нужно было заниматься удалением из системных таблиц информации о дочерних процессах, завершивших работу.
Модуль Daemon не работает в системах Win32, поскольку выполняет ряд вызовов, реализованных только в UNIX. В приложении, приведен простой модуль Daemon Debug, который имеет такой же интерфейс, как и модуль Daemon. Однако он не переходит автоматически в фоновый режим, не открывает системный журнал и не выполняет другие выкладки, характерные только для системы UNIX. Вместо этого, процесс остается на переднем плане и записывает сообщения об ошибках и отладочные сообщении в стандартное устройство вывода сообщений об ошибках. В следующих примерах кода достаточно заменить “Daemon” словом “DaemonDebug”, и они будут прекрасно работать в системах Win32. Такую замену можно также применить в системм UNIX, если решено оставить сервер на переднем плане или возникают проблемы при обеспечении работы модуля Sys::Syslog.
Серверы, выполняющие прием и ветвление, уже рассматривались, но в этом сервере применяется немного иная конструкция программы, поэтому ниже описана соответствующая программа.