CAsyncSocket::IOCtl
Эта функция-член вызывается с целью наблюдения режим сокета.
BOOL IOCtl(
long lCommand,
DWORD* lpArgument
);
Параметры
lCommand
Команда для выполнения на сокете.lpArgument
Указатель на параметр для lCommand.
Возвращаемое значение
Ненулевой если функция успешно; в противном случае – значение 0, а конкретный код ошибки могут быть восстановлены путем вызова GetLastError.Об ошибке применяемых к данному функции-члену.
WSANOTINITIALISED А успешное AfxSocketInit должно произойти перед использованием этого API.
Реализация Windows WSAENETDOWN sockets обнаружила, что подсистема сети.
WSAEINVAL lCommand не является допустимой команды или lpArgument не допустимый для параметра lCommand или команда не применимо с предоставленным типом сокета.
WSAEINPROGRESS А операция блокировки Windows sockets выполняется.
Не WSAENOTSOCK дескриптор сокета.
Заметки
Эту процедуру можно использовать в любом сокете в любом состоянии.Она используется для получения или восстановить параметры operating, связанные с гнездом, независимым протокола и подсистемой связи.Поддерживаются следующие команды:
FIONBIO Включение или отключение nonblocking режим для сокета.Элементы параметра lpArgument на DWORD, который отличен от нуля, если nonblocking режим быть включен и нуль, если его блокировки.Если было выдано AsyncSelect на сокете, то любые попытки использовать IOCtl для задания сокет обратно в режим WSAEINVAL отключить завершится с ошибкой.Чтобы установить сокет обратно в режим блокировки и ошибка WSAEINVAL приложение должно AsyncSelect сначала отключить путем вызова AsyncSelect с параметром lEvent, равным 0, а затем вызывает IOCtl.
FIONREAD Задает максимальное число байтов, которые можно считать с одним вызовом Получить из этого сокета.Элементы параметра lpArgument на DWORD, в котором IOCtl сохраняет результат.Если этот сокет типа SOCK_STREAM, то FIONREAD возвращает общее количество данных, которое может быть считано в одном Получить; это обычно совпадает с общее количество данных в очереди на сокете.Если этот сокет типа SOCK_DGRAM, то FIONREAD возвращает размер первой датаграммы из очереди для сокета.
Определяет, является ли SIOCATMARK считаны все экстренные данные.Это применяется только к гнезду типа SOCK_STREAM, который был настроен для приема одного из встроенных внеполосных данных (SO_OOBINLINE).Если экстренные данные не ожидающих чтения, то операция возвращает ненулевое значение.В противном случае возвращается 0 и ниже Получить или ReceiveFrom, выполняемые на сокете получают некоторые или все данные перед "метки"; приложение должно использовать операцию SIOCATMARK для определения остаются ли какие-либо данные.Если какие-либо обычные данные перед "срочные" (экстренные) данные, они будут получены.(Обратите внимание, Получить или ReceiveFrom никогда не будут смешение по внештатному каналу и обычные данные в этих же вызов). Элементы параметра lpArgument на DWORD, в котором IOCtl сохраняет результат.
Эта функция является подмножеством ioctl(), как используется в гнездами Беркли.В частности, команда, которая эквивалентна FIOASYNC, пока SIOCATMARK единственная команда гнездо- уровня, которая поддерживается.
Требования
Header: afxsock.h