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)
}
}