Sobes.tech
Junior

Aký je rozdiel medzi protokolmi TCP a UDP?

sobes.tech AI

Odpoveď od AI

TCP - orientovaný na spojenie, garantuje doručenie a poradie paketov. UDP - bez nadviazania spojenia, nezaručuje doručenie ani poradie, ale je rýchlejší.

Hlavné rozdiely:

Vlastnosť TCP UDP
Orientácia S nadviazaním spojenia Bez nadviazania spojenia
Spoľahlivosť Vysoká (zaručuje doručenie) Nízka (nezaručuje doručenie)
Poradie Zaručené Nie je zaručené
Riadenie toku Áno Nie
Kontrola chýb Áno (prenášanie a poradie) Nie (základný kontrolný súčet)
Rýchlosť Nižšia Vyššia
Použitie HTTP, FTP, SSH DNS, DHCP, online hry, streaming

Príklad kódu na odoslanie dát cez TCP v Go:

package main

import (
	"net"
	"log"
)

func main() {
	conn, err := net.Dial("tcp", "localhost:8080") // Naviazanie TCP spojenia
	ak chyba != nil {
		log.Fatal(err)
	}
	defer conn.Close() // Zabezpečenie zatvorenia spojenia

	_, err = conn.Write([]byte("Hello, TCP!")) // Odoslanie dát
	ak chyba != nil {
		log.Fatal(err)
	}
}

Príklad kódu na odoslanie dát cez UDP v Go:

package main

import (
	"net"
	"log"
)

func main() {
	addr, err := net.ResolveUDPAddr("udp", "localhost:8081") // Definovanie UDP adresy
	ak chyba != nil {
		log.Fatal(err)
	}

	conn, err := net.DialUDP("udp", nil, addr) // Vytvorenie "spojenia" UDP (bez relácie)
	ak chyba != nil {
		log.Fatal(err)
	}
	defer conn.Close() // Zatvorenie socketu

	_, err = conn.Write([]byte("Hello, UDP!")) // Odoslanie dát
	ak chyba != nil {
		log.Fatal(err)
	}
}