Для каждого отдельного руководства и примера, которые я видел в Интернете для руководств по сокетам Linux/Unix, код на стороне сервера всегда включает бесконечный цикл, который каждый раз проверяет подключение клиента. Пример:
http://www.thegeekstuff.com/2011/12/c-socket-programming/
http://tldp.org/LDP/LG/issue74/tougher.html#3.2
Есть ли более эффективный способ структурировать код на стороне сервера, чтобы он не включал бесконечный цикл, или кодировать бесконечный цикл таким образом, чтобы он занимал меньше системных ресурсов?