¿Sockets bloqueantes en una aplicacion de un solo hilo? ¿Estamos hablando de TCP o UDP? Si es TCP cada cliente tiene un socket ... que devuelve la funcion accept. ¿Como distinguirias a cada cliente en ese caso?
La verdad es que *NIX no es mi campo pero me parece que estas tratando de usar algo que no esta preparado para esto (multiples timers - uno por cada cliente - ejecutandose a la vez):
http://users.evtek.fi/~tk/rtp/signals-programming.html