Neurochirurgie minim invazivă
"Primum non nocere" este ideea ce a deschis drumul medicinei spre minim invaziv. Avansul tehnologic extraordinar din ultimele decenii a permis dezvoltarea tuturor domeniilor medicinei. Microscopul operator, neuronavigația, tehnicile anestezice avansate permit intervenții chirurgicale tot mai precise, tot mai sigure. Neurochirurgia minim invazivă, sau prin "gaura cheii", oferă pacienților posibilitatea de a se opera cu riscuri minime, fie ele neurologice, infecțioase, medicale sau estetice. www.neurohope.ro |
Client/Server boost
Last Updated: Sep 26 2017 20:31, Started by
virgil94
, Sep 25 2017 15:49
·
0
#1
Posted 25 September 2017 - 15:49
Salut,
Incerc sa inteleg cum functioneaza operatiile asincrone din boost cat si socketurile urmarind exemplul din documentatie. Cel sincron e clar dar aici nu inteleg exact cum functioneaza si de ce e asa. Dupa cum e implementat acolo utilizand functii callback ar trebui sa intre intr-o bucla infinita, nu-i asa? Ceva de genul asta.. [ https://preview.ibb.co/mLYBuQ/Untitled.png - Pentru incarcare in pagina (embed) Click aici ] Nu ma prind exact daca la server exista un singur socket la care se conecteaza toti clientii sau fiecare client creeaza un nou socket atat pe partea client cat si la server. Daca stiti o care ok care sa explice mai in detali ce se intampla nu doar exemple ar fi super, nu am gasit cine stie ce pe google. |
#2
Posted 25 September 2017 - 18:33
Apelezi async_read si oferi un callback. Cand are ceva pentru tine, boost iti apeleaza callbackul si iti ofera informatia. Tu preiei ce-ti ofera si ii zici "mai vreau", apeland iar async_read.
Nu intra in bucla infinita, ca la un moment dat are loc o eroare sau se inchide conexiunea si atunci "nu mai vrei". La server ai un socket care asculta si N sockets diferite pentru N clienti. Ai cod pt realizarea conexiunii apoi e ca la client. |
#3
Posted 26 September 2017 - 08:57
Deci teoretic atat timp cat clientul nu intrerupe conexiunea si nu s-a primit nici o eroare o sa fie o bucla infinita, async_read o sa tot faca callback pana primeste o eroare, de exemplu boost::eof nu?
Si inca un lucru..cum arata mai exact un socket? Este o zona de memorie unde se poate scrie si citi (un fisier temporar sau poate un pipe). Daca de exemplu serverul trebuie sa scrie ceva si clientul sa citeasca, dar inaintea clientului serverul mai scrie ceva datele sunt suprapuse sau se adauga? Edited by virgil94, 26 September 2017 - 09:14. |
#4
Posted 26 September 2017 - 20:31
Socketul e o abstractizare oferita de sistemul de operare. Cand folosesti TCP nu se suprapune nimic.
|
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users