Code java calculer le débit de connection

Signaler
-
 sabrina -
Bonjour, je suis en train de développer une application de mesure de qualité de service internet, donc je cherche à écrire un petit programme qui calcule le débit de ma connexion!
Si quelqu'un sait comment faire, ou a déjà écrit un tel programme merci d'avance

2 réponses

Messages postés
5363
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
30 avril 2021
108
Salut,

Je pense que les chapitres suivant peuvent t'aider: 1, 2


j'ai essayé d'utiliser se code mais les résultats que je me tiens restent toujours "0.0" est ce que vous pouvez m'aider pour trouver une solution
merci



import java.util.Vector;
import java.util.Date;
import java.util.Enumeration;

/**
*
  • @author HAMZAOUI
  • /

public class DataMonitor {

protected Vector samples;
protected Date epoch;

public DataMonitor() {
samples = new Vector();
epoch = new Date();
}

// Add a sample with a start and finish time.
public void addSample(long bcount, Date ts, Date tf) {
samples.addElement(new DataSample(bcount, ts, tf));
}

// Get the data rate of a given sample.
public float getRateFor(int sidx) {
float rate = (float) 0.0;
int scnt = samples.size();
if (scnt > sidx && sidx >= 0) {
DataSample s = (DataSample) samples.elementAt(sidx);
Date start = s.start;
Date end = s.end;
if (start == null && sidx >= 1) {
DataSample prev = (DataSample) samples.elementAt(sidx - 1);
start = prev.end;
}

if (start != null && end != null) {
long msec = end.getTime() - start.getTime();
rate = 1000 * (float)s.byteCount / (float)msec;
}
}

return rate;
}

// Get the rate of the last sample
public float getLastRate() {
int scnt = samples.size();
return getRateFor(scnt - 1);
}

// Get the average rate over all samples.
public float getAverageRate() {
long msCount = 0;
long byteCount = 0;
Date start;
Date finish;
int scnt = samples.size();
for (int i = 0; i < scnt; i++) {
DataSample ds = (DataSample)samples.elementAt(i);

if (ds.start != null)
start = ds.start;
else if (i > 0) {
DataSample prev = (DataSample)samples.elementAt(i-1);
start = ds.end;
}
else
start = epoch;

if (ds.end != null)
finish = ds.end;
else if (i < scnt - 1) {
DataSample next = (DataSample)samples.elementAt(i+1);
finish = ds.start;
}
else
finish = new Date();

// Only include this sample if we could figure out a start
// and finish time for it.
if (start != null && finish != null) {
byteCount += ds.byteCount;
msCount += finish.getTime() - start.getTime();
}
}

float rate = -1;
if (msCount > 0) {
rate = 1000 * (float)byteCount / (float)msCount;
}
System.out.println(rate);
return rate;
}
public static void main (String []args){
DataMonitor d =new DataMonitor();
System.out.println(d.getLastRate());
}
}
Messages postés
5363
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
30 avril 2021
108 > Hamzaoui
Salut,

Si tu utilises le code que tu as posté c'est normale... tu n'y ajoutes pas de samples...
>
Messages postés
5363
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
30 avril 2021

bonjour , j'ai essayé d'ajouter une class DataSample et le résultat reste le même
import java.util.Vector;
import java.util.Date;
import java.util.Enumeration;
public class DataSample {
long byteCount;
Date start;
Date end;

DataSample(long bc, Date ts, Date tf) {
byteCount = bc;
start = ts;
end = tf;
}

}
Messages postés
5363
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
30 avril 2021
108 > Hamzaoui
Salut,

Pour le coup, tu peux ajouter toutes les classes que tu veux, mais si avant l'appel de la méthode getLastRate tu n'ajoutes pas de sample (voir méthode addSample), le résultat sera TOUJOURS le même.
please can you show me how to do this
salut,
moi aussi j'ai un difficulté pour développer une application de calcule de débit internet :( s'il vous plait si tu arrive à une solution pouvez vous le m'envoyé et merci d'avance