programmazione
Socket I socket rappresentano la base delle comunicazioni di rete. Anche se inizialmente possono sembrare un argomento complesso, comprenderne il funzionamento permette di sviluppare applicazioni moderne capaci di comunicare attraverso reti locali e Internet.
         home page  
 

Socket di rete

Pubblicato il: 24-6-2026

Ultima Modifica: 24-6-2026

Introduzione ai socket di rete per principianti

๐ŸŒ Introduzione

Quando navighiamo su Internet, inviamo una email o utilizziamo una chat, dietro le quinte avvengono continui scambi di dati tra computer.

Per permettere questa comunicazione esistono i socket di rete, strumenti che consentono a due programmi di scambiarsi informazioni attraverso una rete locale o Internet.

Anche se il termine puรฒ sembrare complicato, il concetto รจ piuttosto semplice.

๐Ÿ“ก Un socket puรฒ essere immaginato come una porta attraverso la quale un programma invia e riceve dati.

๐Ÿ–ผ๏ธ Schema semplificato

+------------+        Internet        +------------+
| Computer A | <--------------------> | Computer B |
+------------+                        +------------+
       |                                     |
       v                                     v
    Socket                               Socket

๐Ÿ”Œ Cos'รจ un socket?

Un socket รจ un punto finale di comunicazione.

Per poter comunicare occorrono generalmente:

  • un indirizzo IP

  • una porta

  • un protocollo

Ad esempio:

IP:     192.168.1.10
Porta:  80

La porta identifica il servizio con cui si vuole comunicare.

๐Ÿ“ฌ Possiamo immaginare l'indirizzo IP come l'indirizzo di una casa e la porta come il numero dell'appartamento.


๐Ÿ’ก Suggerimento

+----------------------------------------+
| SUGGERIMENTO                           |
+----------------------------------------+
| Per iniziare a fare esperimenti con i  |
| socket utilizza sempre il computer     |
| locale (localhost). In questo modo     |
| eviterai problemi di configurazione    |
| della rete.                            |
+----------------------------------------+

๐Ÿ–ง Client e Server

Nelle comunicazioni di rete troviamo quasi sempre due soggetti:

๐Ÿ–ฅ๏ธ Server

Attende le richieste provenienti dai client.

๐Ÿ’ป Client

Si collega al server e richiede informazioni.

๐Ÿ–ผ๏ธ Schema Client-Server

          Richiesta
Client -----------------> Server

          Risposta
Client <----------------- Server

Esempi reali:

  • Browser Web โ†’ Client

  • Sito Internet โ†’ Server

  • Programma email โ†’ Client

  • Server di posta โ†’ Server


๐Ÿ“ Le porte piรน comuni

Alcune porte sono utilizzate frequentemente.

Porta Servizio
21 FTP
25 SMTP
80 HTTP
110 POP3
443 HTTPS

Quando digitiamo un sito web nel browser, molto spesso stiamo comunicando tramite la porta 80 o la 443.


๐Ÿ” Lo sapevi che?

+----------------------------------------+
| LO SAPEVI CHE?                         |
+----------------------------------------+
| Un singolo computer puรฒ gestire        |
| migliaia di connessioni socket         |
| contemporaneamente.                    |
+----------------------------------------+

๐Ÿ“ฆ Protocolli TCP e UDP

I socket utilizzano principalmente due protocolli.

TCP

โœ” affidabile

โœ” garantisce la consegna dei dati

โœ” utilizzato da siti web e posta elettronica

๐Ÿ–ผ๏ธ

Mittente
   |
   v
[Pacchetto]
   |
   v
Destinatario

Conferma ricezione

UDP

โœ” molto veloce

โœ” non verifica la consegna

โœ” utilizzato nei videogiochi online e nello streaming

๐Ÿ–ผ๏ธ

Mittente
   |
   v
[Pacchetto]
   |
   v
Destinatario

Nessuna conferma

โš ๏ธ Attenzione

+----------------------------------------+
| ATTENZIONE                             |
+----------------------------------------+
| UDP รจ piรน veloce ma non garantisce     |
| che i dati arrivino a destinazione.    |
| Per applicazioni critiche รจ spesso     |
| preferibile utilizzare TCP.            |
+----------------------------------------+

๐Ÿ›  Socket in Pascal

Con Free Pascal e Lazarus รจ possibile utilizzare la unit:

Sockets

per creare applicazioni di rete.

Una dichiarazione tipica รจ:

uses
  Sockets;

Questa unit contiene numerose funzioni per lavorare con la rete.


๐Ÿ“ก Creare un socket

Esempio semplificato:

uses
  Sockets;

var
  MioSocket : LongInt;

begin

  { Creazione del socket }
  MioSocket :=
    fpSocket(AF_INET,
             SOCK_STREAM,
             0);

  if MioSocket < 0 then
    WriteLn('Errore creazione socket')
  else
    WriteLn('Socket creato');

end.

Output:

Socket creato

๐Ÿ”— Connessione ad un server

Dopo aver creato il socket, il client puรฒ collegarsi ad un server.

๐Ÿ–ผ๏ธ

Client
   |
   | Connessione
   v
Server

Le operazioni tipiche sono:

1๏ธโƒฃ Creazione socket

2๏ธโƒฃ Connessione

3๏ธโƒฃ Invio dati

4๏ธโƒฃ Ricezione dati

5๏ธโƒฃ Chiusura connessione


๐Ÿ“จ Invio di dati

Una volta stabilita la connessione รจ possibile inviare dati.

Esempio teorico:

Messaggio := 'Ciao Server';

fpSend(Socket,
       @Messaggio[1],
       Length(Messaggio),
       0);

๐Ÿ“ค Il messaggio viene spedito al server.


๐Ÿ“ฅ Ricezione di dati

Per ricevere dati:

fpRecv(Socket,
       @Buffer,
       SizeOf(Buffer),
       0);

๐Ÿ“ฅ Il programma attenderร  l'arrivo delle informazioni.


๐Ÿ’ก Suggerimento

+----------------------------------------+
| SUGGERIMENTO                           |
+----------------------------------------+
| Quando si sviluppano applicazioni di   |
| rete รจ utile visualizzare messaggi di  |
| debug per controllare connessioni,     |
| errori e dati ricevuti.                |
+----------------------------------------+

๐Ÿ”’ Sicurezza

Quando si utilizzano socket collegati a Internet bisogna prestare attenzione.

รˆ importante:

โœ” validare i dati ricevuti

โœ” gestire gli errori

โœ” chiudere sempre le connessioni

โœ” evitare buffer troppo piccoli

โœ” proteggere i dati sensibili

๐Ÿ›ก๏ธ Un programma di rete non sicuro puรฒ diventare vulnerabile ad attacchi informatici.


โš ๏ธ Attenzione

+----------------------------------------+
| ATTENZIONE                             |
+----------------------------------------+
| Non fidarti mai dei dati ricevuti da   |
| Internet. Verifica sempre che siano    |
| validi prima di elaborarli.            |
+----------------------------------------+

๐ŸŒ Esempi pratici di utilizzo

I socket vengono utilizzati in moltissimi programmi.

๐Ÿ“ง Client di posta elettronica

๐ŸŒ Browser web

๐Ÿ’ฌ Chat online

๐ŸŽฎ Giochi multiplayer

๐Ÿ“ Programmi di trasferimento file

๐Ÿ“น Applicazioni di videoconferenza

๐Ÿ  Sistemi domotici


๐Ÿ” Lo sapevi che?

+----------------------------------------+
| LO SAPEVI CHE?                         |
+----------------------------------------+
| Quando apri una pagina web il browser  |
| crea automaticamente socket per        |
| comunicare con il server del sito.     |
+----------------------------------------+

๐Ÿ“Š Riassunto

Socket
   โ”‚
   โ”œโ”€โ”€ Permette la comunicazione
   โ”‚
   โ”œโ”€โ”€ Utilizza IP e Porta
   โ”‚
   โ”œโ”€โ”€ TCP
   โ”‚     โ””โ”€โ”€ Affidabile
   โ”‚
   โ””โ”€โ”€ UDP
         โ””โ”€โ”€ Veloce

๐ŸŽฏ Conclusione

I socket rappresentano la base delle comunicazioni di rete. Anche se inizialmente possono sembrare un argomento complesso, comprenderne il funzionamento permette di sviluppare applicazioni moderne capaci di comunicare attraverso reti locali e Internet.

Per chi utilizza Pascal e Lazarus, imparare a lavorare con i socket apre la strada allo sviluppo di chat, programmi client-server, sistemi di monitoraggio remoto, giochi multiplayer e molte altre applicazioni professionali.