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
WSANOTINITIALISED
Prima di usare questa funzione, è necessario che venga eseguita una chiamata WSAStartup riuscita.
WSAENETDOWN
Il sottosistema di rete non è riuscito.
WSAEFAULT
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 .
WSAEINPROGRESS
È in corso una chiamata di Windows Sockets 1.1 bloccante oppure il provider di servizi sta ancora elaborando una funzione di callback.
WSAEINVAL
Il parametro level è sconosciuto o non valido.
WSAENOPROTOOPT
L'opzione è sconosciuta o non supportata dalla famiglia di protocolli indicata.
WSAENOTSOCK
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
Ws2def.h (include Winsock2.h)

Vedi anche

getsockopt

CSADDR_INFO

SOCKADDR