Событийная модель соединения сокетов.

Класс WinSock позволяет работать с сокетами в рамках трех подходов, против двух классических. А именно, обычная блокирующая передача данных, неблокирующая передача данных, событийно ориентированная передача данных.

При 3 подходе создаваемый сокет имеет ряд связанных с ним событий, реакцию на которые определяет пользователь.

Общеизвестный факт, что все ПО развивается в сторону унификации интерфейса, это позволяет значительно упростить и ускорить его использование для пользователя. Вполне логично, что унификация программного API приводит к более эффективному и грамотному его использованию программистами, которые выступают в роли потребителей API. В событийном подходе мы исходим от события, мы знаем для какого сокета есть новости.

Если задуматься на тему что такое поступление новых данных в сокет или, например, что такое закрытие сокета с другой стороны. Можно придти к простому выводу - это события. Такие же события, как наступления времени Х или любое другое событие в программе. Более того, абсолютно законна постановка вопроса: "ждем пока произойдет какое-нибудь событие или пока придут данные от сокета". Поэтому это правильно и логично, что и работа с сокетами должна строится на событиях.

Для работы с сокетами в ходе лаб использовался класс CAsyncSocket, который инкапсулирует возможности работы с WinSock. Основными событиями в данном классе являются следующие:

OnAccept Уведомляет слушающий сокет (сервера) о приходе запроса на установление соединения от удаленного сокета (клиента; метод Accept).
OnClose Уведомляет сокет о разрыве соединения с ним.
OnConnect Уведомляет сокет, пытающийся установить соединение, о том, что попытка соединения завершена (как успешно, так и с ошибкой).
OnReceive Уведомляет сокет о наличии в буфере принятых данных, которые могут быть прочитаны с помощью вызова Receive.
OnSend Уведомляет сокет о возможности передачи данных с помощью вызова Send.

Источники:

http://www.kalinin.ru/programming/network/12_12_00.shtml

http://msdn2.microsoft.com/en-us/library/09353w3t(VS.80).aspx








Дата добавления: 2014-12-24; просмотров: 690;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.003 сек.