La forma más eficiente de manejar una conexión de cliente (programación de socket)

Para todos los tutoriales y ejemplos que he visto en Internet para los tutoriales de socket Linux / Unix, el código del lado del servidor siempre implica un bucle infinito que verifica la conexión del cliente cada vez. Ejemplo:

http://www.thegeekstuff.com/2011/12/c-socket-programming/

http://tldp.org/LDP/LG/issue74/tougher.html#3.2

¿Existe una forma más eficiente de estructurar el código del lado del servidor para que no implique un bucle infinito, o codificar el bucle infinito de manera que consuma menos recursos del sistema?

Respuestas a la pregunta(7)

Su respuesta a la pregunta