CodeBlanks Logo Icon CodeBlanks

Soket temelleri

C++ ile soket programlama temellerini öğrenirsin.

Soket nedir?

Bir soket (socket), iki program arasında iletişim kurulan üç noktasıdır. Ağ üzerinden veri göndermek ve almak için kullanılır. C++'ta POSIX soket API'si ile socket() fonksiyonu bir soket oluşturur ve bir dosya tanımlayıcı (int) döndürür.

Örnek: int sock = socket(AF_INET, SOCK_STREAM, 0);. Burada AF_INET IPv4 adres ailesini, SOCK_STREAM güvenilir TCP bağlantısını, 0 ise varsayılan iletişim protokolünü belirtir. Dönen değer negatifse hata vardır. Soket oluşturulduktan sonra connect (istemci) ya da bind + listen (sunucu) ile kullanılır. Bu derste yalnızca soket oluşturmaya odaklanacağız.

AF_INET ve soket tanımlayıcı

AF_INET IPv4 adres ailesini belirtir. Soket oluşturulduğunda dönen int değer bir dosya tanımlayıcıdır (file descriptor). Bu değer, sonraki tüm soket işlemlerinde (connect, bind, send, recv) kullanılır.

Örnek: int sock = socket(AF_INET, SOCK_STREAM, 0); if (sock < 0) { /* hata */ }. Negatif değer hata demektir. Soket kapatmak için close(sock); çağrılır. Soket kullanımı bittiğinde mutlaka kapatılmalıdır; yoksa kaynak sızıntısı oluşur. Bu, dosya işlemlerine benzer: aç, kullan, kapat.

Uygulama Soket oluştur

#include <sys/socket.h> ekle. int sock = socket(AF_INET, SOCK_STREAM, 0); ile bir TCP soketi oluştur. std::cout << "Soket hazır"; ile durumu yazdır.

Başlangıç kodu

main.cpp
#include <iostream>

// Soket başlığını ekle ve soket oluştur

int main() {
    // socket çağrısını ve çıktıyı ekle
    return 0;
}

Örnek çözüm

main.cpp
#include <iostream>
#include <sys/socket.h>

int main() {
    int sock = socket(AF_INET, SOCK_STREAM, 0);
    std::cout << "Soket hazır";
    return 0;
}

Beklenen çıktı

Soket hazır

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 SOCK_STREAM hangi protokole karşılık gelir?

  • UDP
  • ICMP
  • TCP Doğru cevap
  • ARP

Açıklama: SOCK_STREAM, güvenilir TCP bağlantısını belirtir.

2 Parçayı rolüne eşle

Kavram Anlamı
AF_INET IPv4 adres ailesi
SOCK_STREAM TCP akış
socket() Soket oluşturur
close(sock) Soketi kapatır

3 Soket türünü tamamla

Soru
int sock = socket(AF_INET, ____, 0);
Cevap
int sock = socket(AF_INET, SOCK_STREAM, 0);

Açıklama: SOCK_STREAM TCP tabanlı güvenilir akış sağlar.

İleri seviye bölümündeki tüm dersler