Partager via


CAsyncSocket::GetSockOpt

Appelez la fonction membre pour récupérer une option de socket.

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

Paramètres

  • nOptionName
    L'option de socket pour laquelle la valeur doit être récupérée.

  • lpOptionValue
    Un pointeur vers une mémoire tampon dans laquelle la valeur de l'option demandée doit être retournée. La valeur associée à l'option sélectionnée est retournée dans la mémoire tampon lpOptionValue. L'ensemble globale pointe vers lpOptionLen origine doit contenir la taille de la mémoire tampon en octets ; et au retour, il sera placé à la taille de la valeur retournée. Pour SO_LINGER, il s'agit de la taille d'une structure d' LINGER ; pour toutes les autres options il s'agit de la taille de BOOL ou d' int, selon l'option. Consultez la liste des options et de leurs tailles dans la section Notes.

  • lpOptionLen
    Pointeur vers la taille d' lpOptionValue mise en mémoire tampon en octets.

  • nLevel
    Le niveau auquel l'option est définie ; les seuls niveaux pris en charge sont SOL_SOCKET et IPPROTO_TCP.

Valeur de retour

Une valeur différente de zéro si la fonction est réussie ; sinon 0, et le code d'erreur spécifique peuvent être récupérés en appelant GetLastError. Si une option n'a jamais définie avec SetSockOpt, puis GetSockOpt retourne la valeur par défaut de l'option. Les erreurs suivantes s'appliquent à cette fonction membre :

  • WSANOTINITIALISED A réussi AfxSocketInit doit se produire avant d'utiliser cette API.

  • WSAENETDOWN que l'implémentation de Windows Sockets l'a détecté que le sous-système réseau a échoué.

  • WSAEFAULT l'argument d' lpOptionLen était non valide.

  • WSAEINPROGRESS se bloque l'exécution de Windows Sockets est en cours.

  • WSAENOPROTOOPT L'option est inconnu ou non pris en charge. En particulier, SO_BROADCAST n'est pas pris en charge sur les sockets de type SOCK_STREAM, tandis que SO_ACCEPTCONN, SO_DONTLINGER, SO_KEEPALIVE, SO_LINGER, et SO_OOBINLINE ne sont pas pris en charge sur les sockets de type SOCK_DGRAM.

  • WSAENOTSOCK le modèle n'est pas un socket.

Notes

GetSockOpt récupère la valeur actuelle d'une option de socket associée à un socket de tout type, dans un état, et stocke le résultat dans lpOptionValue. Opérations de socket d'affectent les options, telles que le routage des paquets, transfert de données hors bande, et ainsi de suite.

Les options suivantes sont prises en charge pour GetSockOpt. Le type identifie le type de données traité par lpOptionValue. Les utilisations IPPROTO_TCPau niveau de l'option de TCP_NODELAY ; un autre niveau SOL_SOCKETd'utilisation d'options.

Valeur

Type

Signification

SO_ACCEPTCONN

BOOL

Le socket écoute.

SO_BROADCAST

BOOL

Le socket est configuré pour la communication des messages de distribution.

SO_DEBUG

BOOL

Le débogage est activé.

SO_DONTLINGER

BOOL

Si la valeur true est affectée, l'option de SO_LINGER est désactivée.

SO_DONTROUTE

BOOL

Le routage est désactivé.

SO_ERROR

int

Récupérez le mode et l'espace libre d'erreur.

SO_KEEPALIVE

BOOL

Conserver-alives sont envoyés.

SO_LINGER

la structure S'ATTARDENT

Retourne la valeur actuelle s'attardent des options.

SO_OOBINLINE

BOOL

Les données hors bande sont reçues dans le flux de données normal.

SO_RCVBUF

int

La taille de mémoire tampon de la reçoit.

SO_REUSEADDR

BOOL

Le socket peut être lié à une adresse est déjà utilisé.

SO_SNDBUF

int

La taille de mémoire tampon pour l'envoie.

SO_TYPE

int

Le type du socket (par exemple, SOCK_STREAM).

TCP_NODELAY

BOOL

Désactive l'algorithme Nagle pour la fusion des envois.

Les options de Distribution Berkeley Software (BSD) non prises en charge pour GetSockOpt sont :

Valeur

Type

Signification

SO_RCVLOWAT

int

Acceptez la limite inférieure.

SO_RCVTIMEO

int

Acceptez le délai d'attente.

SO_SNDLOWAT

int

Envoyez la limite inférieure.

SO_SNDTIMEO

int

Envoyez le délai d'attente.

IP_OPTIONS

 

Obtient les options dans l'en-tête IP.

TCP_MAXSEG

int

Obtenez à TCP la taille maximale du segment.

Appeler GetSockOpt avec une option non gérée résultera dans le code d'erreur de WSAENOPROTOOPT qui est retourné par GetLastError.

Configuration requise

Header: afxsock.h

Voir aussi

Référence

CAsyncSocket, classe

Graphique de la hiérarchie

CAsyncSocket::SetSockOpt