Pag6 - monicabulboaca/Proiect-RC GitHub Wiki

Interfata

In interfata este construita o caseta de output cu toate tipurile de servicii care se regasesc in reteaua locala(.local). Generarea output-ului se va face prin butonul ‘Search service types’. Selectand tipul de serviciu, în urma apasarii butonului ‘Search services of selected type’ in output vor aparea mai multe informatii despre acel serviciu. Prin intermediul interfeței putem adăuga/elimina diferite servicii utilizand butoanele de ‘Add service’(care ofera suport pentru introducerea datelor dupa apasare) si ‘Remove Service’. Avem posibilitatea de a afla si IP-ul unui hostname din reteaua locala prin inserarea hostname-ului in caseta dedicata si apasand pe butonul ‘Get IP Adress’.

CAUTARE SERVICII

SELECTARE TIPURI DE SERVICII SI AFISARE

SERVICII GASITE

ADAUGARE SERVICIU NOU

AFISARE SERVICII DUPA ADAUGARE

AFISARE SERVICII CU UN TIP SELECTAT

OBTINERE ADRESA IP

Clase folosite:

–>Cache_Local: aici se pastreaza in memorie pachetele de intrare, cu posibilitatea de adaugare(add), steregre(remove), extragere(get)

–>DNSIncoming: pachet de intrare(RESPONSE) care prezinta functii de unpack(se extrage o anumită informație din pachet), read_header(se citește header-ul pentru a afla informațiile necesare continuării despachetării), read_int/unsignedshort/string_characterstring(citire tip de date), is_query(returnează true dacă pachetul este de tip QUERY), is_response(returnează true dacă pachetul este de tip RESPONSE), read_utf8(se citește un string de o anumită lungime și de la un anumit offset din pachet), read_domain_name(se citește numele domeniului), read_questions(se citesc întrebările din pachet), read_other_data(se citesc alte date din pachet precum răspunsurile)

–>DNSOutgoing : pachet de ieșire(QUERY) care prezinta functii precum add_question(se adaugă o întrebare), add_answer_at_time(se pune în pachet un răspuns dacă nu expiră pentru o anumită perioadă de timp), add_answer/authoritative/additional(se pune în pachet un răspuns), pack(se adaugă un câmp în pachet), write_byte/short/int/string/utf8(se scrie un tip de date în pachet BE), write_domain_name(se scrie numele domeniului în pachet), write_question, write_record, packet(se împachetează informațiile).

–>ServiceBrowser: generează informațiile pentru un serviciu de un anumit tip, cu functii de update, run și cancel

–>ServiceInfo: retine informatii despre servicii, continand functii de set, get, update, request

–>Engine: restrictioneaza accesul de citire pe socket, permitand obiectelor ce urmeaza a primi date de pe socket sa fie refolosite

–>Listener: receptioneaza ce tip de mesaj DNS este trimis si permite intrarea in cache-ul local a informaiilor

–>Reaper : sterge intrarile expirate din cache

–>Zeroconf : implementeaza zero-configuration mDNS-SD

⚠️ **GitHub.com Fallback** ⚠️