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


CAsyncSocket::GetSockOpt

Эта функция-член вызывается с целью извлечения параметр сокета.

BOOL GetSockOpt( 
   int nOptionName, 
   void* lpOptionValue, 
   int* lpOptionLen, 
   int nLevel = SOL_SOCKET  
);

Параметры

  • nOptionName
    Значение параметра сокета, для которого требуется извлечь.

  • lpOptionValue
    Указатель на буфер, в котором значения для запрошенного параметра должно быть возвращено. Значение, связанное с выбранным параметром возвращается в буфере lpOptionValue. Целое число, указанное на lpOptionLen должен изначально содержать размер данного буфера в байтах. и возврат, оно будет установлен равным размеру значения, возвращаемый. Для SO_LINGER это будет размер структуры LINGER; для всех других параметров будет размером BOOL или int в зависимости от параметра. См. список параметров и их размеров в разделе "Примечания".

  • lpOptionLen
    Указатель на размер буфера lpOptionValue в байтах.

  • nLevel
    Уровень, на котором определен параметр. единственные поддерживаемые уровни SOL_SOCKET и IPPROTO_TCP.

Возвращаемое значение

Ненулевой если функция успешно; в противном случае – значение 0, а конкретный код ошибки могут быть восстановлены путем вызова GetLastError. Если параметр никогда не был установлен с SetSockOpt, то GetSockOpt возвращает значение по умолчанию для параметра. Об ошибке применяемых к данному функции-члену.

  • WSANOTINITIALISED А успешное AfxSocketInit должно произойти перед использованием этого API.

  • Реализация Windows WSAENETDOWN sockets обнаружила, что подсистема сети.

  • WSAEFAULT Аргумент lpOptionLen недопустимо.

  • WSAEINPROGRESS А операция блокировки Windows sockets выполняется.

  • WSAENOPROTOOPT Параметр неизвестен или не поддерживается. В частности, SO_BROADCAST не поддерживается на гнездах типа SOCK_STREAM, пока SO_ACCEPTCONN, SO_DONTLINGER, SO_KEEPALIVE, SO_LINGER и SO_OOBINLINE не поддерживаются в гнездах типа SOCK_DGRAM.

  • Не WSAENOTSOCK дескриптор сокета.

Заметки

GetSockOpt извлекает текущее значение для параметра сокета, связанного с гнездом любого типа, в любом состоянии и сохраняет результат в lpOptionValue. Операции сокета, влияют на параметров, например маршрутизация пакетов внеполосная передача данных и т д

Следующие параметры поддерживаются для GetSockOpt. Тип определяет тип данных приготовленных lpOptionValue. Уровень IPPROTO_TCP использования параметра TCP_NODELAY; все остальные уровень SOL_SOCKET использования параметров.

Значение

Тип

Значение

SO_ACCEPTCONN

BOOL

Сокет ожидает передачи данных.

SO_BROADCAST

BOOL

Сокет настроено широковещательных для передачи сообщений.

SO_DEBUG

BOOL

Отладка включена.

SO_DONTLINGER

BOOL

True, если параметр SO_LINGER отключить.

SO_DONTROUTE

BOOL

Маршрутизация отключена.

SO_ERROR

int

Состояние ошибки и снимите флажок извлечь.

SO_KEEPALIVE

BOOL

Хранить - alives отправить.

SO_LINGER

структура МЕДЛИТ

Возвращает текущие параметры помедлите.

SO_OOBINLINE

BOOL

Экстренные данные получаются в потоке данных.

SO_RCVBUF

int

Размер буфера для получения.

SO_REUSEADDR

BOOL

Сокет можно привязать к адресу, который уже используется.

SO_SNDBUF

int

Размер буфера для отправить.

SO_TYPE

int

Тип сокета (например, SOCK_STREAM).

TCP_NODELAY

BOOL

Отключить алгоритм Nagle, используемый для отправки объединенных пакетов.

Параметры berkeley software distribution (BSD) не поддерживается для GetSockOpt:

Значение

Тип

Значение

SO_RCVLOWAT

int

Возвращает метку низкой воды.

SO_RCVTIMEO

int

Время ожидания операции получения.

SO_SNDLOWAT

int

Отправьте метка низкой воды.

SO_SNDTIMEO

int

Отправьте время ожидания.

IP_OPTIONS

 

Получение параметров в заголовке IP.

TCP_MAXSEG

int

Получите TCP максимальный размер сегмента.

Вызов GetSockOpt с неподдерживаемым параметром приведет к коде ошибки WSAENOPROTOOPT возвращается из GetLastError.

Требования

Header: afxsock.h

См. также

Ссылки

Класс CAsyncSocket

Диаграмма иерархии

CAsyncSocket::SetSockOpt