opzione socket SO_BSP_STATE
L'opzione socket SO_BSP_STATE restituisce l'indirizzo locale, la porta locale, l'indirizzo remoto, la porta remota, il tipo di socket e il protocollo usati da un socket.
Per eseguire questa operazione, chiamare la funzione getsockopt con i parametri seguenti.
Valore dell'opzione socket
La costante che rappresenta questa opzione socket è 0x1009.
Sintassi
int getsockopt(
(SOCKET) s, // descriptor identifying a socket
(int) SOL_SOCKET, // level
(int) SO_BSP_STATE, // optname
(char *) optval, // output buffer,
(int) *optlen, // size of output buffer
);
Parametri
-
s [in]
-
Descrittore che identifica il socket.
-
level [in]
-
Livello in cui è definita l'opzione. Usare SOL_SOCKET per questa operazione.
-
optname [in]
-
Opzione socket per cui recuperare il valore. Usare SO_BSP_STATE per questa operazione.
-
optval [out]
-
Puntatore al buffer in cui deve essere restituito il valore dell'opzione richiesta. Questo parametro deve puntare al buffer uguale o maggiore della dimensione di una struttura CSADDR_INFO .
-
optlen [in, out]
-
Puntatore alle dimensioni, in byte, del buffer optval . Questa dimensione deve essere uguale o maggiore della dimensione di una struttura CSADDR_INFO .
Valore restituito
Se l'operazione viene completata correttamente, getsockopt restituisce zero.
Se l'operazione non riesce, viene restituito un valore di SOCKET_ERROR e è possibile recuperare un codice di errore specifico chiamando WSAGetLastError.
Codice di errore | Significato |
---|---|
Prima di usare questa funzione, è necessario che venga eseguita una chiamata WSAStartup riuscita. |
|
Il sottosistema di rete non è riuscito. |
|
Uno dei parametri optval o optlen punta alla memoria che non si trova in una parte valida dello spazio indirizzi utente. Questo errore viene restituito anche se il valore a cui punta il parametro optlen è minore della dimensione di una struttura CSADDR_INFO . |
|
È in corso una chiamata di Windows Sockets 1.1 bloccante oppure il provider di servizi sta ancora elaborando una funzione di callback. |
|
Il parametro level è sconosciuto o non valido. |
|
L'opzione è sconosciuta o non supportata dalla famiglia di protocolli indicata. |
|
Il descrittore non è un socket. |
Commenti
La funzione getsockopt chiamata con l'opzione socket SO_BSP_STATE recupera l'indirizzo locale, la porta locale, l'indirizzo remoto, la porta remota, il tipo di socket e il protocollo usato da un socket. L'opzione socket SO_BSP_STATE funziona con socket IPv6 o IPv4 (famiglie di indirizzi AF_INET6 e AF_INET ).
Se la funzione getsockopt ha esito positivo, le informazioni vengono restituite in una struttura CSADDR_INFO nel buffer a cui punta il parametro optval . L'intero a cui punta optlen deve contenere originariamente le dimensioni di questo buffer; in caso di restituzione, verrà impostata sulla lunghezza, espressa in byte, del valore restituito nel parametro optval .
I membri iSocketType e iProtocol nella struttura CSADDR_INFO restituita vengono compilati per il descrittore socket nel parametro s .
Se il socket si trova in uno stato connesso o associato, il membro LocalAddr della struttura CSADDR_INFO restituita verrà impostato su una struttura SOCKADDR che rappresenta l'indirizzo locale e la porta. Se il socket si trova in uno stato connesso, il membro RemoteAddr della struttura CSADDR_INFO restituita verrà impostato su una struttura SOCKADDR che rappresenta l'indirizzo remoto e la porta.
Se il socket non è in uno stato connesso o associato, il membro LocalAddr della struttura CSADDR_INFO restituita viene restituito con un puntatore NULL nel membro lpSockaddr e il membro iSockaddrLength impostato su zero. Se il socket non è in uno stato associato, il membro RemoteAddr della struttura restituita CSADDR_INFO viene restituito con un puntatore NULL nel membro lpSockaddr e il membro iSockaddrLength impostato su zero.
Se la funzione getsockopt ha esito negativo, i parametri optval e optlen vengono lasciati invariati e il parametro optval non punta a una struttura CSADDR_INFO restituita.
Si noti che il file di intestazione Ws2def.h viene automaticamente incluso in Winsock2.h e non deve mai essere usato direttamente.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato |
Windows Vista [solo app desktop] |
Server minimo supportato |
Windows Server 2008 [solo app desktop] |
Intestazione |
|
Vedi anche