BOOM Shankar ALL!
Есть такая задача — необходимо одновременно делать
около 300 — 1000 запросов по разным ip с целью получения
разового куска данных. Для всей этой хрени решил
использовать асинхронные сокеты так как можно обрабатывать полученные данные
пока передается или принимается следующая порция. Поэтому возник
такой вопрос — что будет быстрей использовать I/O модель
WSAAsyncSelect() т.е. в одной нити обрабатывать события
для всех сокетов или использовать I/O WSAEventSelect()
создовая на каждый сокет по одной нити для обработки сокетных
событий? Конечно, с WSAEventSelect'ом мы можем в одной нити
обрабатывать события для 64 сокетов но тогда эти 64 сокета
получаются как бы "конкурентными" и их "параллельность" работы
становится сомнительной. Честней всего я так думаю что это можно
сделать с помощью Completion Port I/O, но под 9x это работать не
будет

.
Вообщем подскажите оптимальный способ решения данной проблемы.
Здравствуйте, sniuk, Вы писали:
S>BOOM Shankar ALL!
S>Есть такая задача — необходимо одновременно делать
S>около 300 — 1000 запросов по разным ip с целью получения
S>разового куска данных. Для всей этой хрени решил
S>использовать асинхронные сокеты так как можно обрабатывать полученные данные
S>пока передается или принимается следующая порция. Поэтому возник
S>такой вопрос — что будет быстрей использовать I/O модель
S>WSAAsyncSelect() т.е. в одной нити обрабатывать события
S>для всех сокетов или использовать I/O WSAEventSelect()
S>создовая на каждый сокет по одной нити для обработки сокетных
S>событий? Конечно, с WSAEventSelect'ом мы можем в одной нити
S>обрабатывать события для 64 сокетов но тогда эти 64 сокета
S>получаются как бы "конкурентными" и их "параллельность" работы
S>становится сомнительной. Честней всего я так думаю что это можно
S>сделать с помощью Completion Port I/O, но под 9x это работать не
S>будет
.
S>Вообщем подскажите оптимальный способ решения данной проблемы.
Использовать асинхронные сокеты и синхронизироваться с помощью порта завершения ввода-вывода, в 98-х это работать не будит, но по большому счету эта операционка и не предназначена для решения подобных задач.