Bandbreite ermitteln

24/01/2008 - 11:56 von martina gerling | Report spam
Hallo, ich übertrage per FTP Dateien. Nun kam die Frage, wie hoch die
Bandbreite ist.

Wie kann ich die Bandbreite ermitteln? Ich habe mal ein Codefragment
meiner FTP-Lösung angehangen.
requestStream = state.Request.EndGetRequestStream(ar);
// Copy the file contents to the request stream.
const int bufferLength = 2048;
byte[] buffer = new byte[bufferLength];
int count = 0;
int readBytes = 0;
FileStream stream = File.OpenRead(state.FileName);
do
{
readBytes = stream.Read(buffer, 0, bufferLength);
requestStream.Write(buffer, 0, readBytes);
count += readBytes;
if (LblStatus != null)
LblStatus.Invoke(new
UpdateTextCallback(UpdateText), new object[] {
count.ToString() + " / " + fileLength.ToString() });
if (Progress != null)
{
Progress.Invoke(new
UpdateProgressCallback(UpdateProgress),
new object[] { (long)count, fileLength });
}
}
while (readBytes != 0);

Danke

Martina
 

Lesen sie die antworten

#1 Stefan Braumeister
25/01/2008 - 13:31 | Warnen spam
martina gerling schrieb:
Hallo, ich übertrage per FTP Dateien. Nun kam die Frage, wie hoch die
Bandbreite ist.

Wie kann ich die Bandbreite ermitteln? Ich habe mal ein Codefragment
meiner FTP-Lösung angehangen.



"deiner" Lösung, schwindelst du da nicht ein wenig? Der Code kommt mir
nàmlich sehr bekannt vor:-)

Wie wàrs damit, dass bei jedem invoke die zeit misst, die zum letzten
invoke vergangen ist, denn dann weist du, dass du 2048/current-previous
hast, das rechnest du dann hoch auf eine Sekunde. Nur so mal als Grundidee.


requestStream = state.Request.EndGetRequestStream(ar);
// Copy the file contents to the request stream.
const int bufferLength = 2048;
byte[] buffer = new byte[bufferLength];
int count = 0;
int readBytes = 0;
FileStream stream = File.OpenRead(state.FileName);
do
{
readBytes = stream.Read(buffer, 0, bufferLength);
requestStream.Write(buffer, 0, readBytes);
count += readBytes;
if (LblStatus != null)
LblStatus.Invoke(new
UpdateTextCallback(UpdateText), new object[] {
count.ToString() + " / " + fileLength.ToString() });
if (Progress != null)
{
Progress.Invoke(new
UpdateProgressCallback(UpdateProgress),
new object[] { (long)count, fileLength });
}
}
while (readBytes != 0);

Danke

Martina

Ähnliche fragen