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.
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.
๐ฅ 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.