Socket (reti)

Da Wikipedia, l'enciclopedia libera.

Un socket, in informatica, nei sistemi operativi moderni, indica un'astrazione software progettata per poter utilizzare delle API standard e condivise per la trasmissione e la ricezione di dati attraverso una rete oppure come meccanismo di IPC. È il punto in cui il codice applicativo di un processo accede al canale di comunicazione per mezzo di una porta, ottenendo una comunicazione tra processi che lavorano su due macchine fisicamente separate. Dal punto di vista di un programmatore un socket è un particolare oggetto sul quale leggere e scrivere i dati da trasmettere o ricevere.

Tipi di socket[modifica | modifica wikitesto]

Ci sono due tipi fondamentali di socket:

  • i socket tradizionali su protocollo IP, usati in molti sistemi operativi per le comunicazioni attraverso un protocollo di trasporto (quali TCP o UDP);
  • gli Unix domain socket (detti anche socket locali o socket in dominio Unix), usati nei sistemi operativi POSIX per le comunicazioni tra processi residenti sullo stesso computer.

A sua volta esistono due tipi di socket su IP:

In base alla modalità di connessione, inoltre, si distinguono:[1]

  • Stream socket: connection-oriented, basati su TCP;
  • Datagram socket: connectionless, basati su UDP;
  • Raw socket: utilizzati per lo sviluppo di protocolli.

I socket sono stati introdotti nel 1983 in BSD e poi sono stati ripresi da praticamente tutti gli altri sistemi operativi. Per questo motivo solitamente le funzioni di programmazione dei socket vengono chiamate Berkeley socket API.

Per aprire un socket da DOS o da shell testuale Unix si può utilizzare il comando telnet.

Note[modifica | modifica wikitesto]

  1. ^ Socket: cosa sono e come funzionano - FortyZone, fortyzone.it. URL consultato l'08 settembre 2015.

Voci correlate[modifica | modifica wikitesto]