Sobes.tech
Junior

Каква е разликата между протоколите TCP и UDP?

sobes.tech AI

Отговор от AI

TCP - ориентиран към връзката, гарантира доставката и реда на пакетите. UDP - без установяване на връзка, не гарантира доставката и реда, но е по-бърз.

Основни разлики:

Признак TCP UDP
Ориентация С установяване на връзка Без установяване на връзка
Надеждност Висока (гарантира доставката) Ниска (не гарантира доставката)
Порядък Гарантиран Не гарантиран
Управление на потока Има Няма
Контрол на грешките Има (пренос и ред) Няма (основна контролна сума)
Скорост По-ниска По-висока
Използване HTTP, FTP, SSH DNS, DHCP, онлайн игри, стрийминг

Пример за код за изпращане на данни по TCP в Go:

package main

import (
	"net"
	"log"
)

func main() {
	conn, err := net.Dial("tcp", "localhost:8080") // Установяване на TCP връзка
	if err != nil {
		log.Fatal(err)
	}
	defer conn.Close() // Гарантиране на затваряне на връзката

	_, err = conn.Write([]byte("Hello, TCP!")) // Изпращане на данни
	if err != nil {
		log.Fatal(err)
	}
}

Пример за код за изпращане на данни по UDP в Go:

package main

import (
	"net"
	"log"
)

func main() {
	addr, err := net.ResolveUDPAddr("udp", "localhost:8081") // Определяне на UDP адрес
	if err != nil {
		log.Fatal(err)
	}

	conn, err := net.DialUDP("udp", nil, addr) // Създаване на "връзка" UDP (без сесия)
	if err != nil {
		log.Fatal(err)
	}
	defer conn.Close() // Затваряне на сокета

	_, err = conn.Write([]byte("Hello, UDP!")) // Изпращане на данни
	if err != nil {
		log.Fatal(err)
	}
}