Code java calculer le débit de connection

- - Dernière réponse : Twinuts
Messages postés
5305
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
12 décembre 2018
- 14 avril 2016 à 11:18
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
Afficher la suite 

Votre réponse

1 réponse

Messages postés
5305
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
12 décembre 2018
0
Merci
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());
}
}
Twinuts
Messages postés
5305
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
12 décembre 2018
> Hamzaoui -
Salut,

Si tu utilises le code que tu as posté c'est normale... tu n'y ajoutes pas de samples...
> Twinuts
Messages postés
5305
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
12 décembre 2018
-
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;
}

}
Twinuts
Messages postés
5305
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
12 décembre 2018
> 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.
Commenter la réponse de Twinuts

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.