Categorie di socket del kernel Winsock

Il Winsock Kernel (WSK) Network Programming Interface (NPI) definisce cinque diverse categorie di socket: socket di base, socket di ascolto, socket di datagrammi, socket orientati alla connessione e socket di flusso. Ogni categoria di socket WSK ha funzionalità univoche e supporta un set diverso di funzioni socket. Un'applicazione WSK deve specificare la categoria di socket WSK che sta creando ogni volta che crea un nuovo socket. Lo scopo per ogni categoria di socket WSK è il seguente:

Socket di base
I socket di base vengono usati solo per ottenere e impostare le opzioni del socket dello stack di trasporto o per eseguire operazioni di controllo di I/O socket. I socket di base non possono essere associati a un indirizzo di trasporto locale e non supportano l'invio o la ricezione di dati di rete.

Socket in ascolto
I socket di ascolto vengono usati per restare in ascolto delle connessioni in ingresso da indirizzi di trasporto remoti. La funzionalità di un socket di ascolto include tutte le funzionalità di un socket di base.

Socket di datagrammi
I socket di datagrammi vengono usati per inviare e ricevere datagrammi. La funzionalità di un socket di datagrammi include tutte le funzionalità di un socket di base.

Socket orientati alla connessione
I socket orientati alla connessione vengono usati per inviare e ricevere dati di rete tramite connessioni stabilite. La funzionalità di un socket orientato alla connessione include tutte le funzionalità di un socket di base.

Socket di flusso
I socket di flusso vengono usati per restare in ascolto delle connessioni in ingresso da indirizzi di trasporto remoti (fungere da socket di ascolto) o per inviare e ricevere dati di rete su connessioni stabilite (fungere da socket orientato alla connessione). Usare un socket di flusso quando non si conosce al momento della creazione del socket se si desidera un socket in ascolto o un socket orientato alla connessione. La funzionalità di un socket di flusso include tutte le funzionalità di un socket di base.