Opciones de socket e IOCTLs

En la tabla siguiente se resumen algunas de las opciones de socket para Windows Sockets 2. Se proporciona información más detallada en la sección 4 en WSPGetSockOpt y/o WSPSetSockOpt. Hay otras opciones nuevas de socket específicas del protocolo que se pueden encontrar en el Anexo específico del protocolo. Hay una lista completa de opciones de socket para Windows Sockets disponibles en la referencia de Winsock.

Para obtener un resumen de algunos de los Ioctl de Winsock, vea Resumen de códigos de operación Ioctl de socket. Hay disponible una lista completa de IOCTL de Winsock en la referencia de Winsock.

Resumen de las opciones comunes de socket

Un proveedor de servicios Winsock debe reconocer todas estas opciones y (para WSPGetSockOpt) devolver valores viables para cada una. El valor predeterminado de cada opción se muestra en la tabla siguiente.

Valor

Tipo

Significado

Valor predeterminado

Nota:

SO_ACCEPTCONN

BOOL

El socket se encuentra a la escucha.

FALSE a menos que se haya llevado a cabo un WSPListen.

SO_BROADCAST

BOOL

El socket está configurado para la transmisión y recepción de mensajes de difusión.

FALSE

SO_DEBUG

BOOL

La depuración está habilitada.

FALSE

(i)

SO_DONTLINGER

BOOL

Si es true, la opción SO_LINGER está deshabilitada.

TRUE

SO_DONTROUTE

BOOL

El enrutamiento está deshabilitado. Funciona, pero se omite en sockets AF_INET; produce un error en sockets AF_INET6 con WSAENOPROTOOPT. No se admite en sockets ATM (se produce un error).

FALSE

(i)

SO_ERROR

int

Recupera el estado del error y se borra.

0

SO_GROUP_ID

GROUP

Reservado.

NULL

Obtener solo

SO_GROUP_PRIORITY

int

Reservado.

0

SO_KEEPALIVE

BOOL

Se envían los keepalives. No se admite en sockets ATM (se produce un error).

FALSE

(i)

SO_LINGER

Estructura persistente

Devuelve las opciones de persistencia actuales.

l_onoff es 0

SO_MAX_MSG_SIZE

int

Tamaño máximo de salida de un mensaje para los tipos de socket de mensajes. No hay ninguna disposición para determinar el tamaño máximo del mensaje entrante. No tiene ningún significado para los sockets orientados a flujos.

Dependiente de la implementación

Obtener solo

SO_OOBINLINE

BOOL

Los datos de OOB se reciben en el flujo de datos normal.

FALSE

SO_PROTOCOL_INFOW

estructura WSAPROTOCOL_INFO

Descripción de la información del protocolo para el protocolo enlazado a este socket.

Dependiente del protocolo

Obtener solo

SO_RCVBUF

int

El espacio total de búfer por socket reservado para las recepciones. Esto no está relacionado con SO_MAX_MSG_SIZE y no se corresponde necesariamente con el tamaño de la ventana de recepción TCP.

Dependiente de la implementación

(i)

SO_REUSEADDR

BOOL

Otros usuarios pueden usar la dirección a la que está enlazado este socket. No es aplicable en sockets ATM.

FALSE

SO_SNDBUF

int

Espacio total de búfer por socket reservado para los envíos. Esto no está relacionado con SO_MAX_MSG_SIZE y no se corresponde necesariamente con el tamaño de una ventana de envío TCP.

Dependiente de la implementación

(i)

SO_TYPE

int

Tipo del socket (por ejemplo, SOCK_STREAM).

Como se creó a través del socket.

PVD_CONFIG

char FAR *

Objeto de estructura de datos opaco que contiene información de configuración del proveedor de servicios.

Dependiente de la implementación

TCP_NODELAY

BOOL

Deshabilita el algoritmo de Nagle para la fusión de envíos.

Dependiente de la implementación

(i) Un proveedor de servicios puede omitir silenciosamente esta opción en WSPSetSockOpt y devolver un valor constante para WSPGetSockOpt, o puede aceptar un valor para WSPSetSockOpt y devolver el valor correspondiente en WSPGetSockOpt sin usar el valor de ninguna manera.

 

Opciones de socket

Opciones de socket de SOL_SOCKET

Opciones de socket de IPPROTO_TCP

Opciones de socket de IPPROTO_UDP

ICTLs de Winsock