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