CSADDR_INFO struttura (ws2def.h)

La struttura CSADDR_INFO contiene informazioni sull'indirizzo di Windows Socket per un socket, un servizio di rete o un provider di spazi dei nomi.

Sintassi

typedef struct _CSADDR_INFO {
  SOCKET_ADDRESS LocalAddr;
  SOCKET_ADDRESS RemoteAddr;
  INT            iSocketType;
  INT            iProtocol;
} CSADDR_INFO, *PCSADDR_INFO, *LPCSADDR_INFO;

Members

LocalAddr

Tipo: SOCKET_ADDRESS

Indirizzo locale di Windows Sockets.

In un'applicazione client passare questo indirizzo alla funzione di associazione per ottenere l'accesso a un servizio di rete.

In un servizio di rete passare questo indirizzo alla funzione di associazione in modo che il servizio sia associato all'indirizzo locale appropriato.

RemoteAddr

Tipo: SOCKET_ADDRESS

Indirizzo remoto di Windows Sockets.

Per questo indirizzo remoto sono disponibili diversi usi:

  • È possibile usare questo indirizzo remoto per connettersi al servizio tramite la funzione di connessione . Questa operazione è utile se un'applicazione esegue/ operazioni diricezione che coinvolgono protocolli orientati alla connessione.
  • È possibile usare questo indirizzo remoto con la funzione sendto quando si comunica tramite un protocollo datagram (connectionless). Se si usa un protocollo senza connessione, ad esempio UDP, sendto è in genere il modo in cui si passano i dati al sistema remoto.

iSocketType

Tipo: INT

Tipo di socket di Windows. I valori possibili per il tipo di socket sono definiti nel file di intestazione Winsock2.h .

La tabella seguente elenca i valori possibili supportati per Windows Sockets 2:

Valore Significato
SOCK_STREAM
Socket di flusso. Si tratta di un protocollo che invia i dati come flusso di byte, senza limiti di messaggio. Questo tipo di socket fornisce flussi di byte basati su byte sequenziati, affidabili e bidirezionali con un meccanismo di trasmissione dati OOB. Questo tipo di socket usa il protocollo TCP (Transmission Control Protocol) per la famiglia di indirizzi Internet (AF_INET o AF_INET6).
SOCK_DGRAM
Socket di datagram. Questo tipo di socket supporta i datagrammi, senza connessione, buffer non affidabili di una lunghezza massima fissa (in genere piccola). Questo tipo di socket usa il protocollo UDP (User Datagram Protocol) per la famiglia di indirizzi Internet (AF_INET o AF_INET6).

I servizi usano la funzione recvfrom per ottenere i datagrammi. Le funzioni di ascolto e accettazione non funzionano con i datagrammi.

SOCK_RDM
Socket di datagram di messaggio affidabile. Questo tipo di socket mantiene i limiti dei messaggi nei dati. Un esempio di questo tipo è l'implementazione del protocollo multicast (PGM) pragmatico in Windows, spesso definita programmazione multicast affidabile.
SOCK_SEQPACKET
Socket del flusso di pacchetti sequenziato. Questo tipo di socket fornisce un pacchetto di pseudo-flusso basato su datagrammi.

iProtocol

Tipo: INT

Protocollo usato. Le opzioni possibili per il parametro del protocollo sono specifiche della famiglia di indirizzi e del tipo socket specificato. I valori possibili sono definiti nei file di intestazione Winsock2.h e Wsrm.h .

In Windows SDK rilasciato per Windows Vista e versioni successive, l'organizzazione dei file di intestazione è stata modificata e questo parametro può essere uno dei valori del tipo di enumerazione IPPROTO definito nel file di intestazione Ws2def.h . Si noti che il file di intestazione Ws2def.h viene incluso automaticamente in Winsock2.h e non deve mai essere usato direttamente.

La tabella seguente elenca i valori comuni per il protocollo anche se sono possibili molti altri valori.

protocol Significato
IPPROTO_TCP
6
Protocollo TCP (Transmission Control Protocol). Si tratta di un valore possibile quando la famiglia di indirizzi è AF_INET oAF_INET6 e il membro iSocketType è SOCK_STREAM.
IPPROTO_UDP
17
Protocollo UDP (User Datagram Protocol). Si tratta di un valore possibile quando la famiglia di indirizzi è AF_INET oAF_INET6 e il membro iSocketType è SOCK_DGRAM.
IPPROTO_RM
113
Protocollo PGM per multicast affidabile. Si tratta di un valore possibile quando la famiglia di indirizzi è AF_INET e il membro iSocketType è SOCK_RDM. In Windows SDK rilasciato per Windows Vista e versioni successive, questo valore viene chiamato anche IPPROTO_PGM.

Commenti

La funzione GetAddressByName ottiene informazioni sull'indirizzo di Windows Sockets usando le strutture CSADDR_INFO .

La funzione getsockopt chiamata con l'opzione socket SO_BSP_STATE recupera una struttura CSADDR_INFO per il socket specificato.

Requisiti

   
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Intestazione ws2def.h (includere Nspapi.h)

Vedi anche

GetAddressByName

SOCKET_ADDRESS

SO_BSP_STATE

bind

connect

getsockopt

Recv

send

Sendto