#pragma once // ── UdpSoketWin — LanKesif'in gerçek Winsock sürücüsü ──────────────────────── // SO_BROADCAST + SO_REUSEADDR (aynı makinede çok fikocad aynı portu dinler) + // non-blocking. Header Winsock içermez (handle uintptr_t) — çeviri birimleri // kirlenmez. Yalnız orkestra.lan_kesif AÇIKKEN kule tarafından açılır; bayrak // kapalıyken hiç soket/WSA dokunuşu olmaz (varsayılan davranış birebir korunur). #include #include #include "fiko/orkestra/tasima_lan.hpp" // UdpSoketArayuz namespace fiko { class UdpSoketWin : public orkestra::UdpSoketArayuz { public: ~UdpSoketWin() override { kapat(); } bool ac(uint16_t port); // bind 0.0.0.0:port (REUSEADDR); başarısız → false void kapat(); bool acikMi() const { return acik_; } uint16_t port() const { return port_; } bool gonderYayin(const std::string& veri) override; // 255.255.255.255:port bool al(std::string& veri, std::string* kaynakIp = nullptr) override; // non-blocking recvfrom private: uintptr_t soket_ = 0; uint16_t port_ = 0; bool acik_ = false; bool wsa_ = false; }; } // namespace fiko