I've generally tended to use select() when writing servers in C which need to handle multiple IO sources and sinks. These days there's stuff like poll and epoll as ...