Junior
TCP va UDP protokollari o'rtasidagi farq nima?
sobes.tech AI
AIdan javob
TCP - ulanishga yo'naltirilgan, paketlarni yetkazib berish va tartibini kafolatlaydi. UDP - ulanish o'rnatmasdan, yetkazib berish va tartibni kafolatlamaydi, lekin tezroq.
Asosiy farqlar:
| Xususiyat | TCP | UDP |
|---|---|---|
| Yo'nalish | Ulanish bilan | Ulanishsiz |
| Ishonchlilik | Yuqori (yetkazib berishni kafolatlaydi) | Past (yetkazib berishni kafolatlamaydi) |
| Tartib | Kafolatlangan | Kafolatlanmagan |
| Oqimni boshqarish | Bor | Yo'q |
| Xato nazorati | Bor (uzatish va tartib) | Yo'q (asosiy tekshirish yig'indisi) |
| Tezlik | Pastroq | Ko'proq |
| Foydalanish | HTTP, FTP, SSH | DNS, DHCP, onlayn o'yinlar, streaming |
Go tilida TCP orqali ma'lumot yuborish uchun misol kod:
package main
import (
"net"
"log"
)
func main() {
conn, err := net.Dial("tcp", "localhost:8080") // TCP ulanishini o'rnatish
if err != nil {
log.Fatal(err)
}
defer conn.Close() // Ulanishni yopishni kafolatlash
_, err = conn.Write([]byte("Hello, TCP!")) // Ma'lumot yuborish
if err != nil {
log.Fatal(err)
}
}
Go tilida UDP orqali ma'lumot yuborish uchun misol kod:
package main
import (
"net"
"log"
)
func main() {
addr, err := net.ResolveUDPAddr("udp", "localhost:8081") // UDP manzilini aniqlash
if err != nil {
log.Fatal(err)
}
conn, err := net.DialUDP("udp", nil, addr) // "ulanish" yaratish (sessiya bo'lmagan)
if err != nil {
log.Fatal(err)
}
defer conn.Close() // Sokinani yopish
_, err = conn.Write([]byte("Hello, UDP!")) // Ma'lumot yuborish
if err != nil {
log.Fatal(err)
}
}