インターネット速度を測定するために使用しているコードがあります。コードはローカルでは完全に機能しているように見えますが、サーバーで使用すると「ゼロで除算しようとしました」というエラーが表示されます。また、temp.tostring() は「byte[]0」を返します
System.Diagnostics.Stopwatch sw;
Byte[] temp;
protected void Page_Load(object sender, EventArgs e)
{
System.Net.WebClient webClient = new System.Net.WebClient();
sw = System.Diagnostics.Stopwatch.StartNew();
try
{
temp = webClient.DownloadData("http://www.xxx.com/yyy.rar");
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
sw.Stop();
long speed = temp.Length / sw.Elapsed.Seconds;
Response.Write(Convert.ToInt32((speed / 1000)).ToString());
}
アップデート!
このようにユーザーのインターネット速度を測定することについて、私の論理が間違っていたことが判明しました。このコードはデータをローカルにダウンロードするため、数ミリ秒で完了します。ユーザーのインターネット速度を測定するにはどうすればよいですか?