Condividi tramite


Funzione getsockname (winsock.h)

La funzione getsockname recupera il nome locale per un socket.

Sintassi

int getsockname(
  [in]      SOCKET   s,
  [out]     sockaddr *name,
  [in, out] int      *namelen
);

Parametri

[in] s

Descrittore che identifica un socket.

[out] name

Puntatore a una struttura SOCKADDR che riceve l'indirizzo (nome) del socket.

[in, out] namelen

Dimensioni del buffer dei nomi , in byte.

Valore restituito

Se non si verifica alcun errore, getsockname restituisce zero. In caso contrario, 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 API, è necessario che venga eseguita una chiamata WSAStartup riuscita.
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
È in corso una chiamata di Windows Sockets 1.1 bloccante oppure il provider di servizi sta ancora elaborando una funzione di callback.
WSAENOTSOCK
Il descrittore non è un socket.
WSAEINVAL
Il socket non è stato associato a un indirizzo con binding o ADDR_ANY è specificato nell'associazione , ma la connessione non si è ancora verificata.

Commenti

La funzione getsockname recupera il nome corrente per il descrittore socket specificato nel nome. Viene utilizzato sul socket associato o connesso specificato dal parametro s . Viene restituita l'associazione locale. Questa chiamata è particolarmente utile quando è stata effettuata una chiamata di connessione senza eseguire prima un'associazione ; la funzione getsockname fornisce l'unico modo per determinare l'associazione locale impostata dal sistema.

In caso di chiamata, il parametro namelen contiene le dimensioni del buffer dei nomi , in byte. In caso di restituzione, il parametro namelen contiene le dimensioni effettive in byte del parametro name .

La funzione getsockname non restituisce sempre informazioni sull'indirizzo host quando il socket è stato associato a un indirizzo non specificato, a meno che il socket non sia stato connesso con connect o accept (ad esempio, utilizzando ADDR_ANY). Un'applicazione Windows Sockets non deve presupporre che l'indirizzo venga specificato a meno che il socket non sia connesso. L'indirizzo che verrà usato per il socket è sconosciuto a meno che il socket non sia connesso quando viene usato in un host multihomed. Se il socket usa un protocollo senza connessione, l'indirizzo potrebbe non essere disponibile fino a quando non si verifica L/O sul socket.

Windows Phone 8: questa funzione è supportata per le app dello Store di Windows Phone in Windows Phone 8 e versioni successive.

Windows 8.1 e Windows Server 2012 R2: questa funzione è supportata per le app di Windows Store in Windows 8.1, Windows Server 2012 R2 e versioni successive.

Requisiti

Requisito Valore
Client minimo supportato Windows 8.1, Windows Vista [app desktop | App UWP]
Server minimo supportato Windows Server 2003 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione winsock.h (include Winsock2.h)
Libreria Ws2_32.lib
DLL Ws2_32.dll

Vedi anche

SOCKADDR

Funzioni Winsock

Informazioni di riferimento su Winsock

bind

getpeername

socket