Sobes.tech
Junior

Фарқи байни протоколҳои TCP ва UDP чист?

sobes.tech AI

Ҷавоб аз AI

TCP - уюштирилган уланишга йўналтирилган, пакетларни етказиб бериш ва тартибини кафолатлайди. UDP - уланишни ўрнатмайди, етказиб бериш ва тартибни кафолатламайди, аммо тезроқ.

Асосий фарқлар:

Хусусият TCP UDP
Йўналиш Уланиш орқали Уланишсиз
Ишончлилик Юқори (етказиб беришни кафолатлайди) Қайта (етказиб беришни кафолатламайди)
Тартиб Кафолатланган Кафолатланмаган
Тўғри назорат Бор (ўтказиш ва тартиб) Йўқ (асосий текшириш жамланмаси)
Суръат Қайтадан пастроқ Юқори
Қўлланиш HTTP, FTP, SSH DNS, DHCP, онлайн ўйинлар, стриминг

Go тилида TCP орқали маълумот юбориш учун мисол коди:

package main

import (
	"net"
	"log"
)

func main() {
	conn, err := net.Dial("tcp", "localhost:8080") // TCP уланишни ўрнатиш
	ако грешка != nil {
		лог.Fatal(грешка)
	}
	дефер кон.Close() // Уланишни ёпишни кафолатлаш

	_, err = кон.Write([]byte("Hello, TCP!")) // Маълумот юбориш
	ако грешка != nil {
		лог.Fatal(грешка)
	}
}

Go тилида UDP орқали маълумот юбориш учун мисол коди:

package main

import (
	"net"
	"log"
)

func main() {
	адреса, грешка := net.ResolveUDPAddr("udp", "localhost:8081") // UDP манзилини аниқлаш
	ако грешка != nil {
		лог.Fatal(грешка)
	}

	кон, грешка := net.DialUDP("udp", nil, адреса) // "уланиш" яратиш (сессиясиз)
	ако грешка != nil {
		лог.Fatal(грешка)
	}
	дефер кон.Close() // Сокетни ёпиш

	_, грешка = кон.Write([]byte("Hello, UDP!")) // Маълумот юбориш
	ако грешка != nil {
		лог.Fatal(грешка)
	}
}