I/O multiplexing: socket programming with select, poll and epoll calls in Linux