Je fais une application de simulation de réseau dans ma classe. J'ai déjà fait le code entier, mais j'ai du mal à contrôler la vitesse du trafic envoyé.Comment puis-je contrôler la vitesse de trafic (octets envoyés) en Java (Jpcap)
L'utilisateur de l'application peut entrer la vitesse désirée qu'il veut générer (par exemple 10 MiB/s). Je fais ce contrôle d'une manière vraiment merdique. J'ai fait un paquet UDP/TCP en Java qui a un octet spécifique (par exemple 8192 octets). Sachant cela, j'ai fait un Thread qui dure une seconde et continue de checker s'il a déjà atteint sa limite (en secondes ou en taille) et continue d'envoyer jusqu'à ce qu'il ait atteint. L'algorithme suivant explique mon idée de merde.
sendWithLimit (byte limit, JpcapSender sender, Packet pkg) {
byte current = 0;
long timeStamp = System.currentTimeMillis();
while ((current < limit) && (System.currentTimeMillis() - timeStamp < 1000))
sender.send(pkg);
current += 8192;
}
}
Je pense que cette approche est assez pauvre, est-il une meilleure façon de contrôler ce ???