Сокет доступные данные для чтения - PullRequest
0 голосов
/ 27 ноября 2009

Мне нужен быстрый метод для проверки, что сокет имеет доступные данные для чтения. Я использую select (), но это не быстро. Существует ли более быстрый метод?

Ответы [ 2 ]

2 голосов
/ 27 ноября 2009

select () имеет тенденцию ухудшаться для больших наборов сокетов из-за необходимости перестроения fd_set и способа, которым это дает результаты.

API epoll () в Linux, пожалуй, мой любимый метод работы с несколькими сокетами. Вы можете быстро взглянуть на него, но он не доступен в Windows.

Я считаю, что единственный способ обойти ограничения select () для Windows с таким количеством сокетов - это использовать порты завершения ввода-вывода.

0 голосов
/ 27 ноября 2009

Вам необходимо использовать порты завершения в Windows. В Интернете много статей о том, как их использовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...