[ Shadowed @ 23.07.2004. 23:24 ] @
| Zna li iko kako mogu da odredim brzinu transfera ako koristim TCPClient klasu? Kao sto to na primer rade download menadzeri (mada oni ne rade to bas najbolje).
Da li se to moze izvesti tako sto se ReceiveBufferSize postavi na npr. 2KB a onda svake dve sekunde procita? Ovo mi izgleda logicno ali nisam uspeo da provalim iz opisa klase u MSDN-u. Da li taj baffer tome sluzi (da kada se napuni ne dolaze novi podaci)?
U MSDN-u stoji i ovo:
Citat: Note Setting this property does not limit the amount of data you can store from a single read operation. The receive buffer dynamically grows in size as space is needed to accommodate varying packet sizes. This property simply allows you to save the overhead associated with dynamic reallocation by specifying a buffer size up front.
Nisam ih bas najbolje razumeo. Znaci li ovo da bas to sto mi treba ne mogu da uradim, ili sta? |
[ mmix @ 24.07.2004. 01:16 ] @
Nije, to samo znači da će se bafer sam proširiti u okviru jedne read operacije, ako je to potrebno, na tebe to utiče tako što ti neće biti dovoljno da operaciju obavljaš svake dve sekunde, već da vreme između dve operacije uskladiš na osnovu srednje vrednosti stvarnih veličina učitanih bafera u svim prethodnim read operacijama. Tj, ako ti read vraća u proseku 1kb podataka, smanjiš vreme na 1s, ako ti vraća 3kb povećaš vreme na 3s, itd. Nadam se da nisam bio previše konfuzan. :)
[ mmix @ 24.07.2004. 01:25 ] @
Moram ispraviti sebe, sad sam video da sam lupio
Ne treba da pratiš srednju vrednost svih do sada pristiglih paketa, to će raditi korektno samo za minimalna odstupanja od srednje vrednosti. Najbolje da recimo uzimaš srednju vrednost za bafere u prethodnih minut vremena, ili još bolje za prethodnih 10 read operacija (lakše isprogramirati). Naravno, odstupanja će biti, možda baš zato i downloaderi ne rade to baš savršeno
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.