· Блокирующий ввод-вывод
· Модель Select
· Модель ввода-вывода WSAAsyncSelect.
· Модель ввода-вывода WSAEventSelect.
· Модель перекрытого ввода-вывода.
· Модель портов завершения.
У каждой из моделей свои достоинства и недостатки, и все модели сложнее в программировании, чем простой ввод-вывод с блокировкой и несколькими потоками Рассмотрим возможные решения для разработки клиентских и серверных приложений
Клиент
При разработке клиентского приложения, управляющего одним или не-сколькими сокетами, мы рекомендуем использовать модель перекрытого ввода-вывода или модель WSAEventSelect для увеличения производительности Впрочем, при разработке приложения Windows, работающего с сообщениями окна, модель WSAAsyncSelect может быть лучше, гак как сама опирается на модель сообщений Windows, а ваше приложение уже содержит механизм обработки сообщений
Сервер
При проектировании сервера, обрабатывающего несколько сокетов одно-временно, рекомендуем модель перекрытого ввода-вывода Впрочем, если вы планируете, что сервер будет одновременно обрабатывать большое количе-ство запросов ввода-вывода, попробуйте использовать порты завершения
Резюме
Мы рассмотрели все модели ввода-вывода, доступные в Winsock Они позво-ляют приложению использовать ввод-вывод Winsock в соответствии со своими нуждами от простого ввода-вывода с блокировкой до быстрого ввода-вывода через порт завершения