Wie kann ich bei der Übertragung größerer Dateien über Sockets eine Traffic-Begrenzung einbauen? Diese sollte nach Möglichkeit Absolut (z.B. 16k/s) oder Relativ (50%) sein. Wie geht man da ran an das Problem? Hab wirklich keine Idee.
Erster, vielleicht naiver Ansatz:
Datei in Byte-Pakete zerstueckeln, diese versenden und zaehlen, nebenher einen Timer mitlaufen lassen der alle X Sekunden schaut wieviel schon durch die Leitung durch ist und das senden ggf. gezielt fuer Zeit Y schlafen legt...
Hab sowas auch noch nicht gemacht, aber das waere vermutlich mein erster Versuch...
wenn ja, kannst du dir ja einen FilteredInput/OutputStream schreiben, der mitzählt und diesen einfach dazwischenschalten; oder ne eigene Socketimplementierung bei der Factory anmelden (kA ob das geht)
@Bleiglanz: Ja, ich hab die volle Freiheit wie ich das Problem löse. Du musst es dir etwa vorstellen wie bei bekannten Filesharing-Netzen. Wie meinst du das mit dem Filtered-io-Stream? Sollte der dann in Abhängigkeit von der eingestellten Rate pausieren?