Condividi tramite


File di inclusione

Il file di inclusione originale da usare con Windows Sockets 1.1 era il file di intestazione Winsock.h . Per semplificare la conversione del codice sorgente esistente basato su socket UNIX Berkeley in socket Windows, sono stati incoraggiati i kit di sviluppo Windows Sockets per Winsock 1.1 a essere forniti con diversi file di inclusione con gli stessi nomi dei file di inclusione UNIX standard (ad esempio i file di intestazione sys/socket.h e arpa/inet.h). Tuttavia, questi file di intestazione Winsock con nome simile contengono semplicemente una direttiva per includere il file di intestazione Winsock2.h .

Quando Windows Sockets 2 è stato rilasciato, il file di inclusione principale da usare con Windows Sockets è stato rinominato winsock2.h. Anche il file di intestazione Winsock.h originale precedente per Winsock 1.1 è stato mantenuto per garantire la compatibilità con le applicazioni precedenti. Lo sviluppo di applicazioni compatibili con Winsock 1.1 è stato deprecato dopo il rilascio di Windows 2000. Tutte le applicazioni dovrebbero ora usare la direttiva include Winsock2.h nei file di origine dell'applicazione Winsock.

Il file di intestazione Winsock2.h contiene la maggior parte delle funzioni, delle strutture e delle definizioni winsock. Il file di intestazione Ws2tcpip.h contiene le definizioni introdotte nel documento allegato specifico del protocollo WinSock 2 per TCP/IP che include funzioni e strutture più recenti usate per recuperare gli indirizzi IP. Questi includono la famiglia di funzioni getaddrinfo e getnameinfo che forniscono la risoluzione dei nomi per indirizzi IPv4 o IPv6. Il file di intestazione Ws2tcpip.h è necessario solo se queste funzioni di denominazione indipendenti da IP sono richieste dall'applicazione.

Il file di intestazione Mswsock.h contiene definizioni per le estensioni specifiche di Microsoft per Windows Sockets 2 (Ad esempio, TransmitFile, AcceptEx e Connessione Ex). Il file di intestazione Mswsock.h non è in genere necessario a meno che queste estensioni specifiche di Microsoft non vengano usate dall'applicazione.

Il file di intestazione Winsock2.h include internamente gli elementi principali del file di intestazione Windows.h , pertanto in genere non esiste una riga #include per il file di intestazione Windows.h nelle applicazioni Winsock. Se è necessaria una riga #include per il file di intestazione Windows.h , deve essere preceduta dalla macro #define WIN32_LEAN_AND_MEAN. Per motivi cronologici, per impostazione predefinita l'intestazione Windows.h include il file di intestazione Winsock.h per Windows Sockets 1.1. Le dichiarazioni nel file di intestazione Winsock.h saranno in conflitto con le dichiarazioni nel file di intestazione Winsock2.h richiesto da Windows Sockets 2. La macro WIN32_LEAN_AND_MEAN impedisce l'inserimento dell'intestazione Winsock.h dall'intestazione Windows.h . Di seguito è illustrato un esempio.

#include <winsock2.h>
#include <ws2tcpip.h>
#include <stdio.h>

#pragma comment(lib, "Ws2_32.lib")

int main() {
  return 0;
}

Creazione di un'applicazione Winsock di base

Introduzione a Winsock

Conversione di applicazioni socket in Winsock

Considerazioni sulla programmazione winsock