Socket (reti): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
A.gr209 (discussione | contributi)
A.gr209 (discussione | contributi)
Nessun oggetto della modifica
Riga 1:
{{F|sistema operativo|febbraio 2013}}
Un '''socket''', in [[informatica]], nei [[sistema operativo|sistemi operativi]] moderni, indica un'[[Astrazione (informatica)|astrazione]] [[software]] progettata per poter utilizzare delle [[Application programming interface|API]] standard e condivise per la trasmissione e la ricezione di dati attraverso una [[Rete informatica|rete]] oppure come meccanismo di [[Comunicazione tra processi|IPC]]. È il punto in cui il codice applicativo di un [[processo (informatica)|processo]] accede al canale di comunicazione per mezzo di una [[Porta (reti)|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.
Line 39 ⟶ 38:
 
Per aprire un socket da [[MS-DOS|DOS]] o da [[Shell (informatica)|shell testuale]] [[Unix]] si può utilizzare il comando [[telnet]].
 
== Socket in Java ==
I socket possono essere implementati tramite vari linguaggi di programmazione. In Java, ad esempio si hanno a disposizione classi già predefinite che permettono la realizzazione sia del socket della macchina client, sia della macchina server.
 
=== Datagram Socket ===
Per realizzare un socket di tipo Datagram, si devono sviluppare le seguenti istruzioni:
 
# Il client crea il socket.
# Il server crea il socket in attesa di ricevere informazioni da altre macchine.
# Il client invia le richieste.
# Il server riceve i dati, li elabora e risponde con le informazioni richieste.
# Il cliente riceve i dati e chiude il socket.
 
Nella programmazione in Java si utilizza la classe Java DatagramSocket, basata sul protocollo UDP, la quale possiede i seguenti metodi principali:<syntaxhighlight lang="java">
//creazione del socket
DatagramSocket Socket1 = new DatagramSocket();
 
//Invio del pacchetto
Socket1.send(pack);
 
//Ricezione del pacchetto
dato = DatagramUtility.getContent(packet);
 
</syntaxhighlight>
 
=== Stream Socket ===
In questa tipologia di connessione è il client che si occupa di invocare il costruttore del socket, specificando l'indirizzo e la porta dove risiede il processo server.<syntaxhighlight lang="java">
//creazione socket client
Socket socketClient = new Socket(ip, porta);
 
//creazione socket server
ServerSocket socketServer = new ServerSocket(porta);
 
 
</syntaxhighlight>
 
== Note ==
 
** Paolo Camagni, Riccardo Nikolassy, Tecnologie e progettazione di sistemi informatici e telecomunicazioni Hoepli
** Craig Hunt, TCP/IP Network Administration, O'REILLY, [[Speciale%3ARicercaISBN/8825618980|ISBN]] 1565923227
<references />