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