Frage

Ich mache eine Netzwerksimulationsanwendung in meiner Klasse.Ich habe bereits den gesamten Code gemacht, aber ich bekomme jedoch Schwierigkeiten, die Geschwindigkeit des gesendeten Verkehrs zu kontrollieren.

Der Benutzer der App kann die gewünschte Geschwindigkeit eingeben, die er erstellen möchte (beispielsweise 10 MIB / s).Ich mache diese Kontrolle in wirklich beschissener Weise.Ich habe ein UDP / TCP-Paket in Java gemacht, das über ein bestimmtes Bytes verfügt (zum Beispiel 8192 Bytes).Wenn Sie wissen, dass ich einen Thread machte, der eine Sekunde dauert, und prüft immer wieder ein, ob er bereits ein Grenzwert erreicht hat (in Sekunden- oder Größe) und sendet an, bis er erreicht ist.Der folgende Algorithmus erklärt meine beschissene Idee.

generasacodicetagpre.

i denkst dass dieser Ansatz ziemlich arm ist, gibt es einen besseren Weg, dies zu kontrollieren ???

War es hilfreich?

Lösung

Erarbeiten Sie, wie viele Pakete von 8192 Bytes pro Sekunde innerhalb der erreichbaren Bandbreite senden können.Senden Sie diese vielen Pakete (n) und nach jedem Schlaf für 1000 / n Millisekunden.Sie müssen es fein machen, um die Zeit zu berücksichtigen, die tatsächlich das Versenden verbringen, aber Sie erhalten die allgemeine Idee.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top