CAsyncSocket::IOCtl
BOOL IOCtl ( довгий lCommand, DWORD * lpArgument );
Значення, яке повертається
Ненульовий, якщо функція успішно; в іншому випадку 0 і кодом помилки можуть бути отримані за номером GetLastError. Такі помилки застосовуються до цієї функції-члени:
-
WSA&NOTINITIALISEDnbsp; Успішних AfxSocketInit має бути ранішим за допомогою цього API.
-
WSAE&NETDOWNnbsp; Реалізація Windows Sockets виявлено, що мережної підсистеми не вдалося.
-
WSAEI&NVALnbsp;lCommand не є командою, lpArgument не є прийнятною параметр для lCommandабо команду непридатний для типу сокету поставляється.
-
WSAEI&NPROGRESSnbsp; Виконується операція блокування Windows Sockets.
-
WSAE&NOTSOCKnbsp; На дескриптор не є панельку.
Параметри
lCommand
Команди для виконання на сокет.
lpArgument
Вказівник на параметр для lCommand.
Зауваження
Телефонуйте цієї функції-члена для керування режиму є сокетом. Цей режим можна використовувати на будь-який сокет у будь-якої держави. Він використовується для отримати або отримати робочих параметрів, пов'язаних з розетка, незалежних підсистеми протокол та комунікацій. Підтримуються наступні команди:
-
FIO&NBIOnbsp; Увімкнути або вимкнути nonblocking режимі на сокет. Параметр lpArgument вказує на DWORD, який є ненульовим, якщо nonblocking режимі, щоб активувати і нуль, якщо його вимкнуто. AsyncSelect був виданий на сокеті, то будь-яка спроба встановити розетку блокування режимі за допомогою IOCtl вдасться з WSAEINVAL. Встановити розетку блокування режимі і запобігти WSAEINVAL помилка, додаток повинні спочатку відключити AsyncSelect шляхом виклику AsyncSelect із параметром lEvent дорівнює 0, а потім називають IOCtl.
-
FIO&NREADnbsp; Визначити максимальну кількість байт, який можна прочитати з одного отримання дзвінка від цієї розетки. Параметр lpArgument вказує на DWORD в якому IOCtl зберігає результат. Якщо ця розетка типу SOCK_STREAM, FIONREAD повертає загальний обсяг даних, які можна прочитати в одному отримання; Це, як правило, так само як загальна кількість даних у черзі на сокет. Якщо ця розетка типу SOCK_DGRAM, FIONREAD повертає розмір першого дейтаграм у черзі на сокет.
-
SIOCATMARKnbsp; Визначити, чи всі дані-група має читати. Це відноситься тільки до розетки типу SOCK_STREAM , який налаштовано для прийому в рядку даних-група (SO_OOBI&NLINE). Якщо дані не-група чекає, щоб бути прочитаний, операція повертає ненульовим. В іншому разі вона повертає значення 0, а наступного отримання або ReceiveFrom на сокет буде отримати деякі або всі дані, які передують "Марка"; застосування повинні використовувати SIOCATMARK операцію для визначення, чи будь-які дані залишаються. Якщо є нормальні дані перед «терміново» (поза діапазону), буде отримано в порядку. (Зверніть увагу, що отримання або ReceiveFrom ніколи не будуть змішуватися-група і нормальні дані в одному виклику.) Параметр lpArgument вказує на DWORD , в яких магазинах IOCtl результат.
Ця функція є підмножиною IOCTL () як використовується в Berkeley розетки. Зокрема, немає команди еквівалентний FIOASYNC, а SIOCATMARK лише socket рівня команди, який підтримується.
Огляд CAsyncSocket |nbsp; Члени класу | Ієрархічна діаграма
Дивіться також CAsyncSocket::AsyncSelect, CAsyncSocket::Create, CAsyncSocket::GetSockOpt, CAsyncSocket::SetSockOpt