Share via


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

Vea también

Referencia

Clase de CAsyncSocket

Gráfico de jerarquía

CAsyncSocket::SetSockOpt