Sobes.tech
Junior

Care este diferența dintre protocoalele TCP și UDP?

sobes.tech AI

Răspuns de la AI

TCP - orientat pe conexiune, garantează livrarea și ordinea pachetelor. UDP - fără stabilirea unei conexiuni, nu garantează livrarea și ordinea, dar este mai rapid.

Diferențele principale:

Caracteristică TCP UDP
Orientare Cu stabilirea conexiunii Fără stabilirea conexiunii
Fiabilitate Ridicată (garantează livrarea) Scăzută (nu garantează livrarea)
Ordine Garanțată Nu garantată
Controlul fluxului Da Nu
Controlul erorilor Da (transmisie și ordine) Nu (sumă de control de bază)
Viteză Mai mică Mai mare
Utilizare HTTP, FTP, SSH DNS, DHCP, jocuri online, streaming

Exemplu de cod pentru trimiterea datelor prin TCP în Go:

package main

import (
	"net"
	"log"
)

func main() {
	conn, err := net.Dial("tcp", "localhost:8080") // Stabilirea conexiunii TCP
	if err != nil {
		log.Fatal(err)
	}
	defer conn.Close() // Asigurarea închiderii conexiunii

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

Exemplu de cod pentru trimiterea datelor prin UDP în Go:

package main

import (
	"net"
	"log"
)

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

	conn, err := net.DialUDP("udp", nil, addr) // Crearea unei "conexiuni" UDP (fără sesiune)
	if err != nil {
		log.Fatal(err)
	}
	defer conn.Close() // Închiderea socket-ului

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