Funzione WSAStringToAddressW (winsock2.h)

La funzione WSAStringToAddress converte un indirizzo di rete nel formato di presentazione testo standard nel formato binario numerico in una struttura sockaddr , adatto per il passaggio alle routine di Windows Sockets che accettano tale struttura.

Sintassi

INT WSAAPI WSAStringToAddressW(
  [in]           LPWSTR              AddressString,
  [in]           INT                 AddressFamily,
  [in, optional] LPWSAPROTOCOL_INFOW lpProtocolInfo,
  [out]          LPSOCKADDR          lpAddress,
  [in, out]      LPINT               lpAddressLength
);

Parametri

[in] AddressString

Puntatore alla stringa con terminazione zero che contiene l'indirizzo di rete in formato testo standard da convertire.

[in] AddressFamily

Famiglia di indirizzi dell'indirizzo di rete a cui punta il parametro AddressString .

[in, optional] lpProtocolInfo

Struttura WSAPROTOCOL_INFO associata al provider da utilizzare. Se è NULL, la chiamata viene instradata al provider del primo protocollo che supporta l'oggetto AddressFamily indicato.

[out] lpAddress

Puntatore a un buffer riempito con una struttura sockaddr per la stringa di indirizzo se la funzione ha esito positivo.

[in, out] lpAddressLength

Puntatore alla lunghezza, in byte, del buffer a cui punta il parametro lpAddress . Se la chiamata di funzione ha esito positivo, questo parametro restituisce un puntatore alla dimensione della struttura sockaddr restituita nel parametro lpAddress . Se il buffer specificato non è sufficientemente grande, la funzione ha esito negativo con un errore specifico di WSAEFAULT e questo parametro viene aggiornato con le dimensioni richieste in byte.

Valore restituito

Il valore restituito per WSAStringToAddress è zero se l'operazione ha avuto esito positivo. In caso contrario, viene restituito il valore SOCKET_ERROR e è possibile recuperare un numero di errore specifico chiamando WSAGetLastError.

Codice di errore Significato
WSAEFAULT
Il buffer a cui punta il parametro lpAddress è troppo piccolo. Passare un buffer più grande.
WSAEINVAL
Le funzioni non sono riuscite a convertire la stringa in un sockaddr. Per altre informazioni, vedere la sezione Osservazioni seguente.
WSANOTINITIALISED
Il WS2_32.DLL non è stato inizializzato. L'applicazione deve prima chiamare WSAStartup prima di chiamare qualsiasi funzione Windows Socket.
WSA_NOT_ENOUGH_MEMORY
Memoria insufficiente per eseguire l'operazione.

Commenti

La funzione WSAStringToAddress converte un indirizzo di rete in formato testo standard nella forma binaria numerica in una struttura sockaddr .

Se possibile, tutti i componenti mancanti dell'indirizzo verranno predefinito come valore ragionevole. Ad esempio, per impostazione predefinita, un numero di porta mancante sarà zero. Se il chiamante desidera che la traduzione venga eseguita da un determinato provider, deve fornire la struttura di WSAPROTOCOL_INFO corrispondente nel parametro lpProtocolInfo .

La funzione WSAStringToAddress ha esito negativo (e restituisce WSAEINVAL) se il membro sin_family della struttura SOCKADDR_IN , che viene passato nel parametro lpAddress sotto forma di struttura sockaddr , non è impostato su AF_INET o AF_INET6.

Il supporto per gli indirizzi IPv6 che usano la funzione WSAStringToAddress è stato aggiunto in Windows XP con Service Pack 1 (SP1) e versioni successive. IPv6 deve essere installato anche nel computer locale per la funzione WSAStringToAddress per supportare gli indirizzi IPv6.

Windows Phone 8: Questa funzione è supportata per le app di Windows Phone Store 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.

Nota

L'intestazione winsock2.h definisce WSAStringToAddress come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzioni.

Requisiti

Requisito Valore
Client minimo supportato Windows XP, Windows 8.1 [app desktop | App UWP]
Server minimo supportato Windows Server 2003 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione winsock2.h
Libreria Ws2_32.lib
DLL Ws2_32.dll

Vedi anche

InetNtop

InetPton

RtlIpv4AddressToString

RtlIpv4AddressToStringEx

RtlIpv4StringToAddress

RtlIpv4StringToAddressEx

RtlIpv6AddressToString

RtlIpv6AddressToStringEx

RtlIpv6StringToAddress

RtlIpv6StringToAddressEx

WSAAddressToString

WSAPROTOCOL_INFO

WSAStartup

inet_addr

inet_ntoa

sockaddr