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


Сокеты Windows. Уведомления сокетов

В этом разделе описываются функции уведомления в классах socket. Функции-члены эти функции обратного вызова, которые платформа вызывает сообщает этот объект сокета значительных фактов. Функции уведомления:

  • OnReceive: Указывает, что этот сокет данные в буфере для этого метода, который будет извлекать путем вызова Receive.

  • OnSend: Указывает, что этот сокет он теперь может отправлять данные с помощью метода Отправить.

  • OnAccept: Уведомляет этот ожидать сокет, он может принимать ожидающих запросов подключения с помощью метода Принять.

  • OnConnect: Уведомляет этот при подключении сокет, попытка подключения его выполнения. возможно успешно или возможно в ошибке.

  • OnClose: Указывает, что этот сокет сокет он подключен к закрыл.

    Примечание

    Дополнительные функции уведомления OnOutOfBandData.Это уведомление указывает время сокету, отправя сокет имеет «может» данные, которые необходимо отправить.Внеполосной данные логически независимый канал, связанный с каждой парой подключенных сокетов потока.Внеполосной канал обычно используется для отправки сообщения в» данные «.MFC поддерживает может данные.Опытные пользователи, работая с классом CAsyncSocket могут использоваться внеполосной канал, но пользователи класса CSocket крайне из ее использования.Наиболее простой способ создания второй сокет для передачи такие данные.Сведения о дополнительных сведений о может см. спецификацию Windows SSL, доступная в Windows SDK.

При наследовании от класса CAsyncSocket, необходимо переопределить функции уведомления для этих обязательных событий сети приложению. При наследовании от класса CSocket, выбранная ли переопределение функции уведомления процентов. Можно также использовать CSocket само, в случае которого функции уведомления не имеют по умолчанию значение, не выполняя никаких действий.

Эти функции обратного вызова переопределяемого метода. CAsyncSocket и CSocket преобразования сообщения на уведомления, но необходимо реализовать как функции уведомления отвечают при необходимости их использования. Функции уведомления вызываются во время его сокет требуемого получает уведомление о событиях, таких как наличие данных для чтения.

MFC вызывает функции уведомления, позволяя настраивать расширение функциональности своего сокета момент он получает уведомление. Например, можно вызвать метод Receive из функции уведомления OnReceive, т е на уведомления, что данные для чтения, следует вызвать Receive для чтения их. Такой подход не является обязательным, но допустимый сценарий. В качестве альтернативы можно использовать пользовательскую функцию уведомления для отслеживания хода выполнения, сообщений следование печати и т д

Можно воспользоваться преимуществами этих уведомления путем переопределения функции уведомления в производном классе socket и использование реализации.

Во время операции, такие как получение или отправлять данные, объект CSocket является синхронным. Во время синхронного состояния, очереди все уведомления значенные для других сокетов, пока текущий сокет ожидает уведомление требуется. (Например, во время вызова Receive, сокет хочет уведомление чтения). Как только сокет выполняет свою синхронную операцию, асинхронным снова, другие сокетов могут начинаться получение уведомлений в очереди.

Примечание

В CSocket, функция уведомления OnConnect никогда не вызывается.Для подключений следует вызвать Подключить, которое возвращает при завершении соединения (или успешно или в ошибке).Как уведомления соединения обрабатываются подробности реализации MFC.

Дополнительные сведения о каждой функции уведомления см. функцию в классом CAsyncSocket в справочнике по MFC. Для исходного кода и сведения об образцах MFC см. в разделе Примеры MFC.

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

См. также

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

Сокеты Windows в MFC