CSADDR_INFO structure (nspapi.h)
La structure CSADDR_INFO contient des informations d’adresse Windows Sockets pour un socket, un service réseau ou un fournisseur d’espaces de noms.
Syntaxe
typedef struct _CSADDR_INFO {
SOCKET_ADDRESS LocalAddr;
SOCKET_ADDRESS RemoteAddr;
INT iSocketType;
INT iProtocol;
} CSADDR_INFO, *PCSADDR_INFO, *LPCSADDR_INFO;
Membres
LocalAddr
Type : SOCKET_ADDRESS
Adresse locale de Windows Sockets.
Dans une application cliente, transmettez cette adresse à la fonction de liaison pour obtenir l’accès à un service réseau.
Dans un service réseau, transmettez cette adresse à la fonction de liaison afin que le service soit lié à l’adresse locale appropriée.
RemoteAddr
Type : SOCKET_ADDRESS
Adresse distante de Windows Sockets.
Il existe plusieurs utilisations pour cette adresse distante :
- Vous pouvez utiliser cette adresse distante pour vous connecter au service via la fonction de connexion . Cela est utile si une application effectue des opérations d’envoi/de réception qui impliquent des protocoles orientés connexion.
- Vous pouvez utiliser cette adresse distante avec la fonction sendto lorsque vous communiquez via un protocole sans connexion (datagramme). Si vous utilisez un protocole sans connexion, tel qu’UDP, sendto est généralement la façon dont vous transmettez des données au système distant.
iSocketType
Type : INT
Type de socket Windows. Les valeurs possibles pour le type de socket sont définies dans le fichier d’en-tête Winsock2.h .
Le tableau suivant répertorie les valeurs possibles prises en charge pour Windows Sockets 2 :
Valeur | Signification |
---|---|
|
Socket de flux. Il s’agit d’un protocole qui envoie des données sous la forme d’un flux d’octets, sans limites de message. Ce type de socket fournit des flux d’octets séquencés, fiables, bidirectionnel et basés sur la connexion avec un mécanisme de transmission de données OOB. Ce type de socket utilise le protocole TCP (Transmission Control Protocol) pour la famille d’adresses Internet (AF_INET ou AF_INET6). |
|
Socket de datagramme. Ce type de socket prend en charge les datagrammes, qui sont des mémoires tampons non fiables sans connexion d’une longueur maximale fixe (généralement petite). Ce type de socket utilise le protocole UDP (User Datagram Protocol) pour la famille d’adresses Internet (AF_INET ou AF_INET6).
Les services utilisent la fonction recvfrom pour obtenir des datagrammes. Les fonctions d’écoute et d’acceptation ne fonctionnent pas avec les datagrammes. |
|
Socket de datagramme de message fiable. Ce type de socket conserve les limites de message dans les données. Un exemple de ce type est l’implémentation du protocole de multidiffusion général pragmatique (PGM) dans Windows, souvent appelée programmation de multidiffusion fiable. |
|
Socket de flux de paquets séquencé. Ce type de socket fournit un paquet de pseudo-flux basé sur des datagrammes. |
iProtocol
Type : INT
Protocole utilisé. Les options possibles pour le paramètre de protocole sont spécifiques à la famille d’adresses et au type de socket spécifiés. Les valeurs possibles sont définies dans les fichiers d’en-tête Winsock2.h et Wsrm.h .
Sur la SDK Windows publiée pour Windows Vista et versions ultérieures, la organization des fichiers d’en-tête a changé et ce paramètre peut être l’une des valeurs du type d’énumération IPPROTO défini dans le fichier d’en-tête Ws2def.h. Notez que le fichier d’en-tête Ws2def.h est automatiquement inclus dans Winsock2.h et ne doit jamais être utilisé directement.
Le tableau ci-dessous répertorie les valeurs courantes pour le protocole , bien que de nombreuses autres valeurs soient possibles.
Remarques
La fonction GetAddressByName obtient des informations d’adresse Windows Sockets à l’aide de structures CSADDR_INFO .
La fonction getsockopt appelée avec l’option de socket SO_BSP_STATE récupère une structure CSADDR_INFO pour le socket spécifié.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
En-tête | nspapi.h (include Nspapi.h) |