Junior
TCP ve UDP protokolleri arasındaki fark nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
TCP - bağlantıya yöneliktir, paketlerin teslimatını ve sırasını garanti eder. UDP - bağlantı kurmadan, teslimatı ve sıralamayı garanti etmez, ancak daha hızlıdır.
Ana farklar:
| Özellik | TCP | UDP |
|---|---|---|
| Yönelim | Bağlantı kurarak | Bağlantı olmadan |
| Güvenilirlik | Yüksek (teslimatı garanti eder) | Düşük (teslimatı garanti etmez) |
| Sıra | Garantili | Garantili değil |
| Akış kontrolü | Var | Yok |
| Hata kontrolü | Var (iletim ve sıralama) | Yok (temel kontrol toplamı) |
| Hız | Daha düşük | Daha yüksek |
| Kullanım | HTTP, FTP, SSH | DNS, DHCP, çevrimiçi oyunlar, streaming |
Go dilinde TCP ile veri göndermek için örnek kod:
package main
import (
"net"
"log"
)
func main() {
conn, err := net.Dial("tcp", "localhost:8080") // TCP bağlantısı kur
if err != nil {
log.Fatal(err)
}
defer conn.Close() // Bağlantıyı kapatmayı garanti et
_, err = conn.Write([]byte("Hello, TCP!")) // Veri gönder
if err != nil {
log.Fatal(err)
}
}
Go dilinde UDP ile veri göndermek için örnek kod:
package main
import (
"net"
"log"
)
func main() {
addr, err := net.ResolveUDPAddr("udp", "localhost:8081") // UDP adresini belirle
if err != nil {
log.Fatal(err)
}
conn, err := net.DialUDP("udp", nil, addr) // "bağlantı" oluştur (süreç olmadan)
if err != nil {
log.Fatal(err)
}
defer conn.Close() // Soketi kapat
_, err = conn.Write([]byte("Hello, UDP!")) // Veri gönder
if err != nil {
log.Fatal(err)
}
}