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 |
---|---|
Prima di usare questa API, è necessario che venga eseguita una chiamata WSAStartup riuscita. | |
Il sottosistema di rete non è riuscito. | |
Il nome o il parametro namelen non è una parte valida dello spazio indirizzi utente oppure il parametro namelen è troppo piccolo. | |
È in corso una chiamata di Windows Sockets 1.1 bloccante oppure il provider di servizi sta ancora elaborando una funzione di callback. | |
Il descrittore non è un socket. | |
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 |