Sobes.tech
Junior

Jaký je rozdíl mezi protokoly TCP a UDP?

sobes.tech AI

Odpověď od AI

TCP - orientovaný na spojení, zaručuje doručení a pořadí paketů. UDP - bez navázání spojení, nezaručuje doručení ani pořadí, ale je rychlejší.

Hlavní rozdíly:

Vlastnost TCP UDP
Orientace S navázáním spojení Bez navázání spojení
Spolehlivost Vysoká (zaručuje doručení) Nízká (nezaručuje doručení)
Pořadí Zaručeno Není zaručeno
Řízení toku Ano Ne
Kontrola chyb Ano (přenos a pořadí) Ne (základní kontrolní součet)
Rychlost Nižší Vyšší
Použití HTTP, FTP, SSH DNS, DHCP, online hry, streaming

Příklad kódu pro odeslání dat přes TCP v Go:

package main

import (
	"net"
	"log"
)

func main() {
	conn, err := net.Dial("tcp", "localhost:8080") // Navázání TCP spojení
	if err != nil {
		log.Fatal(err)
	}
	defer conn.Close() // Zajištění uzavření spojení

	_, err = conn.Write([]byte("Hello, TCP!")) // Odeslání dat
	if err != nil {
		log.Fatal(err)
	}
}

Příklad kódu pro odeslání dat přes UDP v Go:

package main

import (
	"net"
	"log"
)

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

	conn, err := net.DialUDP("udp", nil, addr) // Vytvoření "spojení" UDP (bez relace)
	if err != nil {
		log.Fatal(err)
	}
	defer conn.Close() // Zavření socketu

	_, err = conn.Write([]byte("Hello, UDP!")) // Odeslání dat
	if err != nil {
		log.Fatal(err)
	}
}