php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 21.03.2006, 10:56  
Erfahrener Benutzer
 
Benutzerbild von Andreas
 
Registriert seit: 22.04.2005
Beiträge: 391
Andreas ist zur Zeit noch ein unbeschriebenes Blatt
Standard Bandbreite limitieren mit PHP

Hallo,

da ich jetzt meinen FTP-Sync mal testen möchte, allerdings nicht allen anderen die Bandbreite klauen will, wäre es mal interessant, die verfügbare Bandbreite mit php zu steuern.

Ich hatte auch schon einen Ansatz:
Die gewünschte anzahl an bytes pro sekunde übertragen und die verstrichene Zeit als $microtime speichern. Dann mit usleep den rest einer sekunde warten. Also usleep(1-$microtime);.
Allerdings ist es ein Windows-Server und auf dem steht usleep nicht zur Verfügung. Gibts ne Möglichkeit, auf nem Windowsserver microtime zu "verschlafen" oder gibts vielleicht andere Ideen?
Vielleicht ist mein Ansatz zur Bandbreitenbeschränkung generell falsch, wäre mal interessant zu wissen, wie das Prinzip funktioniert.
Andreas ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 21.03.2006, 12:44  
Erfahrener Benutzer
 
Benutzerbild von stefanjann
 
Registriert seit: 02.08.2005
Beiträge: 252
PHP-Kenntnisse:
Fortgeschritten
stefanjann
Standard

Ich halte nicht viel von deiner Idee das über PHP zu steuern, weil du damit versucht PHP etwas machen zu lassen wofür PHP nicht gedacht oder ausgelegt ist. Aber wenn du eine Funtion brauchst die Wartet, dann bau dir eine:

Rezept:
- Zeitpunkt auslesen
- Zeitpunkt plus zeit nehmen die verstreichen soll.
- Zeit Whileschleife solange laufen lassen bis Zeitpunkt vorbei!

Aber wie gesagt, die Bandbreite solltest du (egal ob Windows oder Linux) vom Server, Apache, Netlimiter oder einen anderen Programm regeln und nicht über PHP.
__________________
SELECT * benutze ich nur um den Post kurz zu halten.
stefanjann ist offline   Mit Zitat antworten
Alt 21.03.2006, 13:00  
Erfahrener Benutzer
 
Benutzerbild von Andreas
 
Registriert seit: 22.04.2005
Beiträge: 391
Andreas ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Die while-schleifen idee hatte ich auch schon. Aber nutzt das script damit nicht viel zu viel speicher?
Andreas ist offline   Mit Zitat antworten
Alt 21.03.2006, 14:37  
Erfahrener Benutzer
 
Benutzerbild von stefanjann
 
Registriert seit: 02.08.2005
Beiträge: 252
PHP-Kenntnisse:
Fortgeschritten
stefanjann
Standard

unnötig Rechenleistung! Speicher nicht, da du ja keine Variablen schreibst, sondern nur die aktuelle Zeit holst.
__________________
SELECT * benutze ich nur um den Post kurz zu halten.
stefanjann ist offline   Mit Zitat antworten
Alt 21.03.2006, 16:23  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

PHP ist die falsche Schicht.
Zergling-new ist offline   Mit Zitat antworten
Alt 22.03.2006, 12:57  
Erfahrener Benutzer
 
Benutzerbild von Alpha Centauri
 
Registriert seit: 05.02.2005
Beiträge: 278
Alpha Centauri
Standard

Du könntest deine Dateien und die HTML-Ausgabe über header-Funktionen senden ich Packeten zu je 1024kb und einem sleeptime von 1s . Damit hast du alles gelöst.
__________________
Alpha Centauri ist offline   Mit Zitat antworten
Alt 17.04.2006, 03:04  
Benutzer
 
Registriert seit: 24.01.2005
Beiträge: 56
Melchior
Standard

Hi,

habe grad ein script gefunden, in dem man die packete berechnet, aufteilt und durch unterbrechungen durch sleep somit die download-rate reduzieren kann.
was haltet ihr davon?

PHP-Code:
<?php

$file 
"XYZ.mp3"// file to be send to the client
$speed 8.5// 8,5 kb/s download rate limit

if(file_exists($file) && is_file($file)) {

   
header("Cache-control: private");
   
header("Content-Type: application/octet-stream");
   
header("Content-Length: ".filesize($file));
   
header("Content-Disposition: filename=$file" "%20");

   
flush();

   
$fd fopen($file"r");
   while(!
feof($fd)) {
         echo 
fread($fdround($speed*1024));
       
flush();
       
sleep(1);
   }
   
fclose ($fd);

}

?>
quelle: http://dreamcodes.biz/text/?id=641&s=read

gruß marco

edit ups, war ja genau dieselbe methodik wie oben, sorry 3 Uhr nachts wars spät
Melchior ist offline   Mit Zitat antworten
Alt 17.04.2006, 12:18  
Erfahrener Benutzer
 
Registriert seit: 02.04.2008
Beiträge: 2.603
Corvin befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von MF
was haltet ihr davon?
Nichts, denn, wie Zergling schon schrieb, PHP ist da absolut die falsche Schicht. So "verbraucht" man nur unnötig viel Rechenleistung.
Corvin ist offline   Mit Zitat antworten
Alt 17.04.2006, 13:00  
Benutzer
 
Registriert seit: 24.01.2005
Beiträge: 56
Melchior
Standard

Hi corvin,

ich weiss das es keine sauber Lösung ist, aber zZ ist es meine absolut letzte Hoffnung, die ich sehe. Vielleicht hast du ja einen Tipp für mich?

--
Ich bin gerade dabei eine Homepage zu basteln, funktioniert auch alles soweit. In das html-Konstrukt habe ich einen kleinen Flash-mp3-player eingebaut, der ein dj-set streamt, naja fake-streamed, und genau das ist das Problem.

Die mp3-Datei wird nämlich progressiv im hintergrund runtergeladen, und das drückt auf die Bandbreite des Servers, was das surfen fast unmöglich macht, da er mit voller Power das mp3 saugt.

Mein Ansatz zur Lösung war, die bandbreite des mp3-progr-downloads zu limitieren, z.b. auf 150kbit/s wenn das mp3-file 128kbit/s hat. So wird nur das nötigste geladen, und die bandbreite des users bleibt geschohnt.
Leider ist webhosting mit apache-modden teuer, hier @home habe ich zwar en halbes mbit upload, aber wie ich jetzt gesehen habe, hab ich beim apache mod nur ein upload limit für all und nicht für einen user

meint ihr es könnte nicht viell. doch mit dem script klappen?
ich hab ne traffic flat bei meinem hoster, wäre so nice
ich weiss sonst net mehr weiter
Melchior ist offline   Mit Zitat antworten
Alt 17.04.2006, 13:19  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Oh man lass doch bitte MP3s im Hintergrund weg !!! Wenn ich auf ne Seite gehe und Musik höre schließ ich die Seite sofort wieder. Egal was drauf ist! Musik != Webseite.
Flor1an ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
das limitieren meiner Datens�tze wie bei phpMyAdmin GELight Datenbanken 4 23.02.2006 14:58
Auf einen Eintrag limitieren PHP Tipps 2005-2 4 03.09.2005 23:35
Bandbreite ermitteln! PHP Tipps 2004-2 6 21.12.2004 16:23
[Erledigt] Ergebnis limitieren Datenbanken 1 04.11.2004 19:54
Bandbreite DutziMan Off-Topic Diskussionen 1 09.06.2004 13:58

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php download bandbreite, php bandbreite begrenzen, php upload bandbreite, downloadrate aufteilen, php download bandbreitenbeschränkung, php upload bandbreite beschränken, php bandbreitenlimit, php bandbreite limit, downloadrate reduzieren server apache, bandbreite klauen, downloadrate mit sleep() php, php bandbreiten limit, bandbreite limitieren, php download script bandbreite, apache bandbreitenbeschränkung, php bandbreite limitieren#, php download mit bandbreitenbeschränkung, download bandbreitenbeschr, php download limitieren, php download bandbreite steuern

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:11 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.