Sobes.tech
Junior

Qual è la differenza tra i protocolli TCP e UDP?

sobes.tech AI

Risposta dell'AI

TCP - orientato alla connessione, garantisce la consegna e l’ordine dei pacchetti. UDP - senza stabilire una connessione, non garantisce la consegna né l’ordine, ma è più veloce.

Principali differenze:

Caratteristica TCP UDP
Orientamento Con stabilimento di connessione Senza stabilimento di connessione
Affidabilità Alta (garantisce la consegna) Bassa (non garantisce la consegna)
Ordine Garantito Non garantito
Controllo del flusso No
Controllo degli errori Sì (trasmissione e ordine) No (somma di controllo di base)
Velocità Inferiore Superiore
Utilizzo HTTP, FTP, SSH DNS, DHCP, giochi online, streaming

Esempio di codice per inviare dati tramite TCP in Go:

package main

import (
	"net"
	"log"
)

func main() {
	conn, err := net.Dial("tcp", "localhost:8080") // Stabilire connessione TCP
	if err != nil {
		log.Fatal(err)
	}
	defer conn.Close() // Garantire la chiusura della connessione

	_, err = conn.Write([]byte("Hello, TCP!")) // Inviare dati
	if err != nil {
		log.Fatal(err)
	}
}

Esempio di codice per inviare dati tramite UDP in Go:

package main

import (
	"net"
	"log"
)

func main() {
	addr, err := net.ResolveUDPAddr("udp", "localhost:8081") // Definire indirizzo UDP
	if err != nil {
		log.Fatal(err)
	}

	conn, err := net.DialUDP("udp", nil, addr) // Creare "connessione" UDP (senza sessione)
	if err != nil {
		log.Fatal(err)
	}
	defer conn.Close() // Chiudere la socket

	_, err = conn.Write([]byte("Hello, UDP!")) // Inviare dati
	if err != nil {
		log.Fatal(err)
	}
}