Özet - Ağ programlama
- C++ kursu
- İleri seviye
- Ders 60/83
- 5 dk
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
#include <iostream>
// Soket ve Asio başlıklarını ekle
int main() {
// socket ve io_context oluştur
return 0;
}Örnek çözüm
#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
int sock = ____(AF_INET, SOCK_STREAM, 0);
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 |