Sobes.tech
Junior

Quelle est la différence entre les protocoles TCP et UDP?

sobes.tech IA

Réponse de l'IA

TCP : orienté connexion, garantit la livraison et l’ordre des paquets. UDP : sans établissement de connexion, ne garantit pas la livraison ni l’ordre, mais est plus rapide.

Principales différences :

Caractéristique TCP UDP
Orientation Avec établissement de connexion Sans établissement de connexion
Fiabilité Élevée (garantit la livraison) Faible (ne garantit pas la livraison)
Ordre Garanti Non garanti
Contrôle de flux Oui Non
Contrôle d’erreurs Oui (transmission et ordre) Non (somme de contrôle de base)
Vitesse Plus faible Plus élevée
Utilisation HTTP, FTP, SSH DNS, DHCP, jeux en ligne, streaming

Exemple de code pour envoyer des données via TCP en Go :

package main

import (
	"net"
	"log"
)

func main() {
	conn, err := net.Dial("tcp", "localhost:8080") // Établir une connexion TCP
	if err != nil {
		log.Fatal(err)
	}
	defer conn.Close() // Assurer la fermeture de la connexion

	_, err = conn.Write([]byte("Hello, TCP!")) // Envoyer des données
	if err != nil {
		log.Fatal(err)
	}
}

Exemple de code pour envoyer des données via UDP en Go :

package main

import (
	"net"
	"log"
)

func main() {
	addr, err := net.ResolveUDPAddr("udp", "localhost:8081") // Définir l’adresse UDP
	if err != nil {
		log.Fatal(err)
	}

	conn, err := net.DialUDP("udp", nil, addr) // Créer une "connexion" UDP (sans session)
	if err != nil {
		log.Fatal(err)
	}
	defer conn.Close() // Fermer la socket

	_, err = conn.Write([]byte("Hello, UDP!")) // Envoyer des données
	if err != nil {
		log.Fatal(err)
	}
}