Az így megállapított sebesség persze állandóan változó lesz, akkor is ha ugyanaz a szerver és ugyanaz a kliens között mérjük, mivel a sebesség nagyban függ azokon az internetes szervereken, melyeken áthalad a web oldalunk a saját szerverünk és a kliens között.

Mellékelt példa megnyitása előtt szükséges egy DownloadSpeed nevű virtuális könyvtár létrehozása, mely a példa könyvtárára mutat. Ehhez nyissa meg a mellékelt mappa Tulajdonság ablakát és itt a Webmegosztás lapon engedélyezze a mappa megosztását olvasási és parancsfájlok futtatási jogával.
A megvalósítást a következő módon végezzük el: készítünk egy web oldalt, melyre elhelyezünk egy viszonylag nagyméretű képet. Amikor a felhasználó letölti ezt az oldalt, akkor tároljuk az aktuális időpontot a Session-re. Az oldalt úgy készítjük el, hogy amint az letöltődött, szimulálja a Button1 nyomógombra történő kattintást. Ekkor egy újabb kérés indul el szerverünk felé, ahol alkalmazásunkban létrejön a Button1-hez tartozó Click esemény. Ekkor ismét eltároljuk a Session-re az aktuális időpontot. E két időpontból és az első web oldal méretéből már számítható az eredmény.
Ez az eredmény valamelyest eltér a tényleges letöltési sebességtől, mivel a szerverünk irányába kétszer történik kérés a Button1 nyomógomb Click eseménye miatt. Ennek a második kérésnek az időtöbblete viszont elhanyagolható, mivel az első web oldal letöltésénél lévő nagyméretű kép miatt nagyságrenddel több idő szükséges annak eléréséhez.
Az első web oldal Load eseményénél tároljuk el a kezdeti időpontot, abban az esetben, ha még nem történt meg a nyomógombra való kattintás. Az időpont tárolásához a DateTime osztály Now property-jének Ticks property-jében lévő értéket használjuk fel, mely 1. év január 1-től eltelt időt adja 100 ns időközben számlálva.
private void Page_Load(object sender, System.EventArgs e)
{
if (!IsPostBack)
{
Session.Add("startTime", DateTime.Now.Ticks);
}
}
A WebForm1 HTML kódjában végzünk el egy változtatást, annak érdekében, hogy a lap letöltődése után szimulálva legyen a Button1 nyomógombra történő kattintás. Ehhez a BODY elemben létrehozunk egy onload eseményt, melyben meghívjuk a Button1 nyomógomb Click függvényét, amely egyenértékű a nyomógombra történő kattintással.
<body MS_POSITIONING="GridLayout" onload="document.all.Button1.click()">
Amikor létrejön a Click esemény, akkor eltároljuk az aktuális pillanat értékét, és átirányítjuk a felhasználót a WebForm2-re, ahol kiszámítjuk az eredményt.
private void Button1_Click(object sender, System.EventArgs e)
{
Session.Add("endTime", DateTime.Now.Ticks);
Response.Redirect("WebForm2.aspx");
}
Itt lekérdezzük két változóba a kezdő és befejező időpontot, majd kiszámítjuk ezek különbségét.
private void Page_Load(object sender, System.EventArgs e)
{
long start = (long)Session["startTime"];
long end = (long)Session["endTime"];
long time = end - start;
Először kiírjuk a letöltés idejét másodpercben.
Label1.Text = "Letöltés ideje másodpercben: " + ((double)time/10000000).ToString();
if (time == 0)
{
Label2.Text = "Letöltés sebessége nem mérhető";
}
else
{
Majd ezt követően kiszámítjuk a letöltés sebességét. Ehhez ismernünk kell a letöltött oldal méretét, mely jelen példánknál 75028 bájt. Mivel az eredményt kB/s-ban szeretnénk megadni, így ezt az értéket átszámítjuk kB-ra, mely 73.26953125 lesz.
double d = 73.26953125 / ((double)time / 10000000);
Label2.Text = "Letöltés sebessége kB/s-ben: " + d.ToString();
}
}