Funzione WSAStringToAddressA (winsock2.h)
La funzione WSAStringToAddress converte un indirizzo di rete nel formato di presentazione di testo standard nella sua forma binaria numerica in una struttura sockaddr , adatta per passare alle routine di Windows Sockets che accettano tale struttura.
Sintassi
INT WSAAPI WSAStringToAddressA(
[in] LPSTR AddressString,
[in] INT AddressFamily,
[in, optional] LPWSAPROTOCOL_INFOA lpProtocolInfo,
[out] LPSOCKADDR lpAddress,
[in, out] LPINT lpAddressLength
);
Parametri
[in] AddressString
Puntatore alla stringa con terminazione zero contenente l'indirizzo di rete nel formato di 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 usare. Se si tratta di NULL, la chiamata viene instradata al provider del primo protocollo che supporta l'indirizzo 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 alla funzione ha esito positivo, questo parametro restituisce un puntatore alle dimensioni della struttura sockaddr restituita nel parametro lpAddress . Se il buffer specificato non è sufficiente, la funzione ha esito negativo con un errore specifico di WSAEFAULT e questo parametro viene aggiornato con le dimensioni necessarie in byte.
Valore restituito
Il valore restituito per WSAStringToAddress è zero se l'operazione ha avuto esito positivo. In caso contrario, il valore SOCKET_ERROR viene restituito e un numero di errore specifico può essere recuperato chiamando WSAGetLastError.
Codice di errore | Significato |
---|---|
Il buffer a cui punta il parametro lpAddress è troppo piccolo. Passare un buffer più grande. | |
Le funzioni non erano in grado di tradurre la stringa in un sockaddr. Per altre informazioni, vedere la sezione Osservazioni seguenti. | |
La WS2_32.DLL non è stata inizializzata. L'applicazione deve prima chiamare WSAStartup prima di chiamare tutte le funzioni di Windows Socket. | |
Memoria insufficiente per eseguire l'operazione. |
Commenti
La funzione WSAStringToAddress converte un indirizzo di rete nel formato di testo standard nella sua forma binaria numerica in una struttura sockaddr .
Eventuali componenti mancanti dell'indirizzo verranno predefiniti a un valore ragionevole, se possibile. Ad esempio, un numero di porta mancante verrà predefinito su zero. Se il chiamante vuole 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, passato nel parametro lpAddress sotto forma di struttura sockaddr, non è impostato su AF_INET o AF_INET6.
Il supporto per gli indirizzi IPv6 tramite 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 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 preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.
Requisiti
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 | winsock2.h |
Libreria | Ws2_32.lib |
DLL | Ws2_32.dll |