Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Cum sterg mails din Promotions

Vanzare cumparare fara transfer b...

Receptie ciudata, in functie de t...

Dupa 20 ani de facultate, am uita...
 Mobile.de ofera imprumut de bani ...

problema test grila

Digi24 a disparut de pe TV Lg

Drept de proprietate intelectuala...
 Jante noi shitbox

Trinitas TV 4K

Dacia 1316 cu 6 usi ...

Frecventa modificata radio
 Un nou pericol pt batrani

Ar trebui sa vindem imobiliarele ...

Dupa renuntarea la aparat dentar

pelerinaj in Balcik
 

Client/Server boost

- - - - -
  • Please log in to reply
3 replies to this topic

#1
virgil94

virgil94

    Junior Member

  • Grup: Members
  • Posts: 66
  • Înscris: 08.08.2017
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
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,239
  • Înscris: 24.02.2007
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
virgil94

virgil94

    Junior Member

  • Grup: Members
  • Posts: 66
  • Înscris: 08.08.2017
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
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,239
  • Înscris: 24.02.2007
Socketul e o abstractizare oferita de sistemul de operare. Cand folosesti TCP nu se suprapune nimic.

Anunturi

Neurochirurgie minim invazivă 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

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate