CAsyncSocket::GetSockOpt

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

Valeur de retour

Différent de zéro si la fonction est réussie ; sinon, 0 et un code d'erreur spécifique peuvent être récupérée par appeler GetLastError. Si une option n'est jamais définie avec SetSockOpt, GetSockOpt retourne la valeur par défaut de l'option. Les erreurs suivantes s'appliquent à cette fonction membre:

Paramètres

nOptionName

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

lpOptionValue

Pointeur vers la mémoire tampon dans laquelle la valeur de l'option demandée doit être retourné. La valeur associée à l'option sélectionnée est renvoyée dans la mémoire tampon lpOptionValue. L'entier pointé par lpOptionLen devrait contenir à l'origine de la taille de ce tampon en octets ; et au retour, elle est définie à la taille de la valeur retournée. Pour SO_LINGER, ce sera la taille d'une structure LINGER ; pour toutes les autres options, il sera de la taille d'un BOOL ou int, selon l'option. Voir la liste des options et leurs tailles dans la section Remarques.

lpOptionLen

Un pointeur vers la taille de la mémoire tampon en octets de lpOptionValue.

nLevel

Le niveau au cours de laquelle l'option est définie ; les niveaux de prise en charge seulement sont SOL_SOCKET et IPPROTO_TCP.

Remarques

Appelez cette fonction membre pour récupérer une option de socket. GetSockOpt récupère la valeur d'une option de socket associée à un socket de tout type, dans tout état et stocke le résultat dans lpOptionValue. Options affectent les opérations de socket, telles que le routage des paquets, transfert de données hors-bande, etc.

Les options suivantes sont prises en charge pour GetSockOpt. Le Type identifie le type de données traitées par lpOptionValue. L'option TCP_NODELAY utilise le niveau IPPROTO_TCP; toutes les autres options utilisent niveau SOL_SOCKET.

Valeur Type Sens
SO_ACCEPTCONN BOOL Socket est à l'écoute.
SO_BROADCAST BOOL Socket est configuré pour la transmission des messages de diffusion.
SO_DEBUG BOOL Le débogage est activé.
SO_DONTLINGER BOOL Si true, l'option SO_LINGER est désactivée.
SO_DONTROUTE BOOL Routage est désactivé.
SO_ERROR int Récupérer l'état d'erreur et clair.
SO_KEEPALIVE BOOL Persistantes sont envoyés.
SO_LINGER struct LINGER Retourne les options actuelles de linger.
SO_OOBINLINE BOOL Données hors-bande sont reçues dans le flux de données normal.
SO_RCVBUF int Taille de la mémoire tampon pour reçoit.
SO_REUSEADDR BOOL Le socket peut être lié à une adresse qui est déjà utilisé.
SO_SNDBUF int Taille de la mémoire tampon pour envoie.
SO_TYPE int Le type de socket (par exemple, SOCK_STREAM).
TCP_NODELAY BOOL Désactive l'algorithme Nagle pour envoyer coalescence.

Options de Berkeley Software Distribution (BSD) non pris en charge pour GetSockOpt sont:

Valeur Type Sens
SO_RCVLOWAT int Recevoir l'eau marque.
SO_RCVTIMEO int Recevoir le timeout.
SO_SNDLOWAT int Envoyer l'eau marque.
SO_SNDTIMEO int Envoyer timeout.
IP_OPTIONS Obtenir des options dans l'en-tête IP.
TCP_MAXSEG int Obtenir la taille maximale de segment TCP.

Appeler GetSockOpt avec une option non prise en charge se traduira par un code d'erreur de WSAENOPROTOOPT étant retourné de GetLastError.

Aperçu de CAsyncSocket |nbsp ; Membres de la classe | Graphique de la hiérarchie

Voir aussi  ;CAsyncSocket::SetSockOpt

Index