winsock и порты завершения ввода-вывода
От: Pepel Беларусь  
Дата: 11.03.09 12:48
Оценка:
разрабатываю сервер обработки запросов, прочитал про настоятельно рекомендуемый Рихтером метод уведомления о завершении ввода-вывода — использование IO Completion Ports, по ходу чтения возник вопрос в контексте использования IOCP применительно к сокетам и winsock в частности — я приведу свое понимание и буду признателен если мне укажут на его возможную ошибочность :

запись в очередь порта происходит после завершения асинхронной операции ввода/вывода, т.е применительно к winsock речь идет исключительно о записи/чтении данных сокета и лишь о паре функций WSASend/WSARecv — посредством этих функций мы начинаем асинхронную запись / чтение и узнаем о завершении операции посредством IOCP. Это так ? GetQueuedCompletionStatus () вернет управление только по факту завершения операций записи/чтения, начатых функциями WSASend/WSARecv на сокете привязанном к порту ? Но если так, то получается, что параллелизм начинается с момента получения данных от клиента — мой пул потоков может лишь реагировать на факт завершения вычитки из сокета данных, отправленных мне клиентом, но как распаралелить саму вычитку при помощи IOCP ?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.