CAsyncSocket::GetSockOpt
Llame a esta función miembro para recuperar una opción de socket.
BOOL GetSockOpt(
int nOptionName,
void* lpOptionValue,
int* lpOptionLen,
int nLevel = SOL_SOCKET
);
Parámetros
nOptionName
La opción de socket cuyo valor se va a recuperar.lpOptionValue
Un puntero al búfer en el que el valor para la opción solicitada debe volver. El valor asociado a la opción seleccionada se devuelve en el búfer lpOptionValue. El entero indicada por lpOptionLen debe contener originalmente el tamaño de este búfer en bytes; y en devolución, se establecerá en el tamaño del valor devuelto. Para SO_LINGER, este será el tamaño de una estructura de LINGER ; para todas las demás opciones será el tamaño de BOOL o de int, dependiendo de la opción. Vea la lista de opciones y sus tamaños en la sección comentarios.lpOptionLen
Un puntero al tamaño del búfer de lpOptionValue en bytes.nLevel
El nivel en el que se define la opción; los únicos niveles admitidos son SOL_SOCKET y IPPROTO_TCP.
Valor devuelto
Distinto de cero si la función es correcta; si no 0, y un código de error específico puede recuperar llamando a GetLastError. Si una opción nunca se estableció con SetSockOpt, después GetSockOpt devuelve el valor predeterminado para la opción. Los errores siguientes se aplican a esta función miembro:
WSANOTINITIALISED A AfxSocketInit correcto debe aparecer antes de utilizar esta API.
La implementación de Windows Sockets deWSAENETDOWN The detectó que produjo el subsistema de la red.
El argumento deWSAEFAULT The lpOptionLen no es válido.
La operación de Windows Sockets de bloqueo deWSAEINPROGRESS A está en curso.
La opción deWSAENOPROTOOPT The es desconocido o no compatible. En particular, SO_BROADCAST no se admite en los sockets de SOCK_STREAMtipo, mientras que SO_ACCEPTCONN, SO_DONTLINGER, SO_KEEPALIVE, SO_LINGER, y SO_OOBINLINE no se admiten en los sockets de SOCK_DGRAMescrito.
WSAENOTSOCK El descriptor no es un socket.
Comentarios
GetSockOpt recupera el valor actual una opción de socket asociada a un socket de cualquier tipo, en cualquier estado, y almacena el resultado en lpOptionValue. Operaciones de socket de la influencia de opciones, como el enrutamiento de paquetes, transferencia de datos fuera de banda, etc.
Las opciones siguientes se admiten para GetSockOpt. El tipo identifica el tipo de datos dirigidos por lpOptionValue. Las aplicaciones IPPROTO_TCPnivel de la opción de TCP_NODELAY ; el resto del nivel SOL_SOCKETde uso de las opciones.
Valor |
Tipo |
Significado |
---|---|---|
SO_ACCEPTCONN |
BOOL |
El socket está escuchando. |
SO_BROADCAST |
BOOL |
El socket se configura para la transmisión de mensajes de difusión. |
SO_DEBUG |
BOOL |
Se habilita la depuración. |
SO_DONTLINGER |
BOOL |
Si es true, se deshabilita la opción de SO_LINGER . |
SO_DONTROUTE |
BOOL |
Se deshabilita el enrutamiento. |
SO_ERROR |
int |
Estado y desactive de error de recuperación. |
SO_KEEPALIVE |
BOOL |
Se está publicando Conservar - alives. |
SO_LINGER |
struct LINGER |
Devuelve la actual se ralentizan las opciones. |
SO_OOBINLINE |
BOOL |
Los datos fuera de banda se está recibiendo en la secuencia de datos normal. |
SO_RCVBUF |
int |
El tamaño de búfer de recibe. |
SO_REUSEADDR |
BOOL |
El socket se puede enlazar a una dirección que ya esté en uso. |
SO_SNDBUF |
int |
El tamaño de búfer para envía. |
SO_TYPE |
int |
El tipo de socket (por ejemplo, SOCK_STREAM). |
TCP_NODELAY |
BOOL |
Deshabilita el algoritmo de Nagle para la fusión de envíos. |
Las opciones de Berkeley Software Distribution (BSD) no compatibles para GetSockOpt son:
Valor |
Tipo |
Significado |
---|---|---|
SO_RCVLOWAT |
int |
Reciba la marca de agua baja. |
SO_RCVTIMEO |
int |
Reciba el tiempo de espera. |
SO_SNDLOWAT |
int |
Envía la marca de agua baja. |
SO_SNDTIMEO |
int |
Envíe el tiempo de espera. |
IP_OPTIONS |
|
Obtiene las opciones de encabezado IP. |
TCP_MAXSEG |
int |
Obtener el tamaño máximo del segmento TCP. |
La llamada GetSockOpt con una opción no compatibles dará lugar a un código de error de WSAENOPROTOOPT que se cambia de GetLastError.
Requisitos
encabezado: afxsock.h