Поделиться через


Windows sockets: Наследование от классов сокета

В данной статье описан функциональности можно получить путем наследования собственный класс, производный от одного из классов сокета.

Можно создать собственные классы сокета из CAsyncSocket или CSocket для добавления собственной функциональности.В частности, эти классы предоставляют несколько виртуальных функций-членов, которые можно переопределить.Эти функции включают OnReceive, OnSend, OnAccept, OnConnect и OnClose.Можно переопределить функции в производном классе сокета воспользоваться преимуществами уведомлений они предоставляют события возникают, когда сети.Границы вызывающие эти функции обратного вызова уведомления для уведомления пользователя о том, как приходная важных событий сокета накладная данных, которые можно начать чтение.Дополнительные сведения о функциях уведомления см. в разделе Windows sockets: Уведомления сокета.

Кроме того, предоставляет CSocket класса функцию-член OnMessagePending (дополнительно), доступная для переопределения.MFC вызывает данную функцию, когда сокет нагнетает на базе Windows сообщения.Можно переопределить OnMessagePending для поиска указанные сообщения из окон и реагировать на них.

Версия по умолчанию OnMessagePending поддерживает в классе CSocket рассматривает очередь сообщений для сообщений WM_PAINT при ожидании блокирующий вызов, чтобы завершить.Она отправляет сообщения рисования для повышения качества отображения.Помимо сделать что-нибудь полезный, это иллюстрирует один из способов ее могут переопределить функцию.В качестве другого примера рассмотрим использование OnMessagePending для следующей задачи.Предположим, что безрежимное диалоговое окно отображается во время ожидания транзакции сети.Диалоговое окно содержит кнопку " отмена ", которую пользователь может использоваться для отмены блокирующие транзакции, завершение которых займет слишком много времени.Пользовательское переопределение OnMessagePending может нагнести сообщения, относящиеся к этому диалоговому окну modeless.

В переопределенном методе OnMessagePending, метод должен возвращать либо Истина или возвращаемый в результате вызова метода базового класса OnMessagePending версии.Вызовите версию базового класса, если она выполняет работу, по-прежнему необходимо сделать.

Дополнительные сведения см. в следующих разделах.

См. также

Основные понятия

Windows sockets в MFC