PDA

View Full Version : [C] lettura attraverso socket


misterx
01-09-2019, 07:30
ciao,
scaricando pagine html tramite socket ed attraverso l'evento OnRead, ho notato che la lettura completa non avviene in una sola operazione ma cambia sempre; ad esempio, scaricando la home page di google, quello sotto è il numero di volte e le dimensioni del buffer che viene usato

1) 4290
2) 1430
3) 4290
4) 15730
5) 1430
6) 5720
7) 13737


Tali letture, rappresentano oviamente porzioni della pagina html che devo via via assemblare in un ulteriore buffer.
Mi chiedevo come testare la fine della pagina in quanto temo che la presenza di </html> non sia sufficiente per garantirmi che abbia letto tutto tramite socket.

Kaya
02-09-2019, 13:20
Ovviamente no, non puoi essere sicuro perchè potrebbero avere aggiunto altro (anche se non dovuto).

Vado a memoria, ma non è che la fine dello stream arriva quando la read è pari a 0 ?

misterx
02-09-2019, 17:26
Ovviamente no, non puoi essere sicuro perchè potrebbero avere aggiunto altro (anche se non dovuto).

Vado a memoria, ma non è che la fine dello stream arriva quando la read è pari a 0 ?

colpa mia, non ho scritto che sto provando il metodo GET del protocollo HTTP ed attraverso l'evento che ho citato, OnRead, non trovo nulla per verificare che l'invio/ricezione sia ultimato.

Kaya
03-09-2019, 07:28
Perchè non usi le librerie CURL che ti semplificano la vita ( https://curl.haxx.se/libcurl/c/example.html ) ?

misterx
04-09-2019, 19:34
Perchè non usi le librerie CURL che ti semplificano la vita ( https://curl.haxx.se/libcurl/c/example.html ) ?

ti ringrazio, ma voglio capire bene i meccanismi della trasmissione dei dati asincrona