Condividi tramite


Funzione di callback LPWSPGETSOCKNAME (ws2spi.h)

La funzione LPWSPGetSockName ottiene il nome locale per un socket.

Sintassi

LPWSPGETSOCKNAME Lpwspgetsockname;

int Lpwspgetsockname(
  [in]      SOCKET s,
  [out]     sockaddr *name,
  [in, out] LPINT namelen,
  [out]     LPINT lpErrno
)
{...}

Parametri

[in] s

Descrittore che identifica un socket associato.

[out] name

Puntatore a una struttura sockaddr usata per fornire l'indirizzo (nome) del socket.

[in, out] namelen

In input, puntatore a un numero intero che indica le dimensioni della struttura a cui punta il nome, in byte. Nell'output indica le dimensioni del nome restituito, in byte.

[out] lpErrno

Puntatore al codice di errore.

Valore restituito

Se non si verifica alcun errore, LPWSPGetSockName restituisce zero. In caso contrario, viene restituito un valore di SOCKET_ERROR e in lpErrno è disponibile un codice di errore specifico.

Codice di errore Significato
WSAENETDOWN
Il sottosistema di rete non è riuscito.
WSAEFAULT
Il nome o il parametro namelen non è una parte valida dello spazio indirizzi utente oppure il parametro namelen è troppo piccolo.
WSAEINPROGRESS
La funzione viene richiamata quando è in corso un callback.
WSAENOTSOCK
Il descrittore non è un socket.
WSAEINVAL
Il socket non è stato associato a un indirizzo con LPWSPBind o ADDR_ANY è specificato in **LPWSPBind** ma la connessione non è ancora stata eseguita.

Commenti

LPWSPGetSockName recupera il nome corrente per il descrittore di socket specificato nel nome. Viene usato su un socket associato e/o connesso specificato dal parametro s . Viene restituita l'associazione locale. Questa chiamata è particolarmente utile quando è stata effettuata una chiamata LPWSPConnect senza eseguire prima LPWSPBind ; poiché questa chiamata fornisce l'unico mezzo per cui è possibile determinare l'associazione locale impostata dal provider di servizi.

Se un socket è stato associato a un indirizzo non specificato (ad esempio, ADDR_ANY), a indicare che uno degli indirizzi dell'host all'interno della famiglia di indirizzi specificata deve essere usato per il socket, LPWSPGetSockName non restituirà necessariamente informazioni sull'indirizzo host, a meno che il socket non sia stato connesso a LPWSPConnect o LPWSPAccept. Il client SPI Windows Sockets non deve presupporre che venga specificato un indirizzo a meno che il socket non sia connesso. Questo perché per un host multihomed, l'indirizzo che verrà usato per il socket è sconosciuto fino a quando il socket non è connesso.

Requisiti

   
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Intestazione ws2spi.h

Vedi anche

LPWSPBind

LPWSPGetPeerName

LPWSPSocket