Используя winsock, вы можете настроить сокеты или отдельные операции ввода-вывода для "перекрытия". Это означает, что вызовы для ввода-вывода возвращаются немедленно, а фактические операции выполняются асинхронно отдельными рабочими потоками.
Winsock также предоставляет "порты завершения". Из того, что я понимаю, порт завершения действует как мультиплексор ручек (сокетов). Ручка может быть демультиплексирована, если она не находится в середине операции ввода-вывода, то есть если все операции ввода-вывода завершены.
Итак, по моему вопросу... поддерживает ли linux порты завершения или даже асинхронный ввод-вывод для сокетов?