server OOB data not through signal SIGURG but through poll(), server multiplexing by poll(), client input async by ncurses lib