CodeBlanks Logo Icon CodeBlanks

Özet - Ağ programlama

TCP istemci/sunucu ve Asio'yu birleştirerek bir echo sunucusu yazarsın.

Özet: echo sunucusu kavramı

Bu özette soket, TCP istemci/sunucu ve Boost.Asio kavramlarını bir echo sunucusu (echo server) düşüncesinde birleştireceğiz. Echo sunucusu, istemciden gelen veriyi aynen geri gönderir; ağ programlamanın klasik ilk örneğidir.

Bir echo sunucusu şu adımları izler: soket oluştur (socket), porta bağla (bind), bağlantı bekle (listen), istemci kabul et (accept), veri al (recv), aynı veriyi geri gönder (send). Boost.Asio ile bu adımlar eşzamansız yapılır. Bu derste temel soket ve Asio kurulumunu bir arada göreceğiz; gerçek echo mantığı sonraki projelerde.

Uygulama Echo sunucu iskeletini yaz

#include <sys/socket.h> ve #include <boost/asio.hpp> ekle. int sock = socket(AF_INET, SOCK_STREAM, 0); ile TCP soketi oluştur. boost::asio::io_context io; tanımla. std::cout << "Echo hazır"; yaz.

Başlangıç kodu

main.cpp
#include <iostream>

// Soket ve Asio başlıklarını ekle

int main() {
    // socket ve io_context oluştur
    return 0;
}

Örnek çözüm

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

int main() {
    int sock = socket(AF_INET, SOCK_STREAM, 0);
    boost::asio::io_context io;
    std::cout << "Echo hazır";
    return 0;
}

Beklenen çıktı

Echo hazır

Soru ve cevaplar

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

1 socket çağrısını tamamla

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

Açıklama: socket(AF_INET, SOCK_STREAM, 0) bir TCP soketi oluşturur.

2 Echo sunucusu ne yapar?

  • Veriyi sıkıştırır
  • Veriyi siler
  • Veriyi şifreler
  • Veriyi aynen geri gönderir Doğru cevap

Açıklama: Echo sunucusu gelen veriyi değiştirmeden geri gönderir.

3 Adımı rolüne eşle

Kavram Anlamı
socket() Soket oluşturur
bind() Porta bağlar
listen() Bağlantı bekler
accept() İstemci kabul eder

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