socket programming, block socket, non-block socket, epoll, java nio, etc