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(грешка)
}
}