If the number of connections is expected to be significant, you should take a look at the difference between select and poll in therms of their limits and read on the epoll interface. The page of libevent has some useful explanations and graphs.