Toon posts:

[C++] Winsock asynchroon data lezen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

Meteen maar een volgende vraag. Ik probeer nu een programma te maken die verbinding maakt met een website en een pagina laad, vervolgens wordt er informatie uit die pagina gehaald en verwerkt. Dat lukt allemaal als ik bezig ben met blocking-sockets. Nu wil ik overstappen naar non-blocking sockets en heb ik wat tutorial'tjes gelezen die wat uitlegden over verschillende functies, etc.

Ik maak dus verbinding, er wordt een bericht verzonden als de host-naam is achterhaald en uiteindelijk wordt er een FD_READ message verstuurd als er data binnenkomt.

Nu wordt er via een functie uit een klasse informatie naar de server gestuurd, daarna moet de server antwoorden. Het probleem is dat ik niet weet wanneer alle data nou is ontvangen... de applicatie moet gewoon doorgaan totdat er een signaal komt dat de gehele pagina is opgehaald. Maar hoe weet ik wanneer de gehele pagina is opgehaald?

Bestaat er een manier om te achterhalen wanneer alle data is ontvangen vanuit de FD_READ message? Of moet ik daarvoor de select functie gebruiken?

  • niwreG
  • Registratie: Augustus 2003
  • Laatst online: 17-10-2024

niwreG

^heeft dat geschreven->

kijken in de header hoelang je data is?

^^eventueele typfouten zijn als vermaak bedoeld


  • truegrit
  • Registratie: Augustus 2004
  • Laatst online: 10-02 15:26
Ik zou zowiezo select gebruiken, en niet om de reden die jij aangeeft. Volgens mij was het zo dat nonblocking sockets (dus niet met select) 100% cpu gebruiken, wat je niet wilt.

hallo


  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 10-12-2025
100% CPU krijg je met polling. Dat is het "domme" alternatief voor select( ).
Non-blocking sockets zijn meestal nog effectiever dan select.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


Verwijderd

Topicstarter
niwreG schreef op dinsdag 11 juli 2006 @ 19:00:
kijken in de header hoelang je data is?
Ik snap jouw reactie niet helemaal, over welke headers heb je het? Ik denk dat ik dan maar de select-methode ga uitproberen... kwam pas op het idee toen ik m'n bericht typte.

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 15-02 11:20
MSalters schreef op dinsdag 11 juli 2006 @ 19:43:
100% CPU krijg je met polling. Dat is het "domme" alternatief voor select( ).
Non-blocking sockets zijn meestal nog effectiever dan select.
Polling zonder een sleep oid tussen de calls. Niet echt de schuld van het pollen ...

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.

Pagina: 1