select vs poll vs epoll [closed] select vs poll vs epoll [closed] linux linux

select vs poll vs epoll [closed]


The answer is epoll if you're using Linux, kqueue if you're using FreeBSD or Mac OS X, and i/o completion ports if you're on Windows.

Some additional things you'll (almost certainly) want to research are:

  • Load balancing techniques
  • Multi-threaded networking
  • Database architecture
  • Perfect hash tables

Additionally, it is important to note that UDP does not have "connections" as opposed to TCP. It would also be in your best interest to start small and scale larger since debugging network-based solutions can be challenging.


Linux: epollFreeBSD: kqueueWindows: ??

There are wrapper libraries, such as libevent and libev, which can abstract this for you.