Willkommen auf dem Portal für Mediengestalter
|
|
Autor |
Nachricht |
qualidat
Threadersteller
Dabei seit: 14.09.2006
Ort: Eichwalde bei Berlin
Alter: 64
Geschlecht:
|
Verfasst Sa 07.04.2012 09:17
Titel PHP: Socket tiemout richtig setzen |
 |
|
Ich habe ein PHP-Programm geschrieben, dass Bilddaten aus einer IP-Kamera holt und als img-src für eine ander Webseite bereitstellt. Das ist nötig, weil es sich "nur" um eine Beobachtungskamera mit direkter Bildbetrachtung und nicht um eine vollwertige Webcam mit FTP- oder Webserver handelt. Das gelingt mittels Socket und ein par Datenmanipulationen einwandfrei.
Wenn die Kamera mal nicht online ist, soll statt dessen eine blaue Fläche mit dem Schriftzug "camera offline" erzeugt und ausgeliefert werden. Auch das kein prinzipielles Problem, es funktioniert grundsätzlich, nur dauert es eine Ewigkeit.
Code: |
$camsock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_set_option($camsock,SOL_SOCKET, SO_RCVTIMEO, array("sec"=>2, "usec"=>2));
$camcon=@socket_connect($camsock, $camaddr, $camport);
if ($camcon) // Verbindung steht
{
// Bilddaten holen und aufbereiten
}
else // Verbindung klappt nicht
{
//Grafik erstellen
}
|
Obwohl ich den Timeout mit "socket_set_option" verkürzt habe (denke ich), dauert es bis zu 30 Sekunden, bevor ohne Kamera in den Else-Zweig gesprungen wird ... was habe ich falsch gemacht?
Zuletzt bearbeitet von qualidat am Sa 07.04.2012 09:18, insgesamt 1-mal bearbeitet
|
|
|
|
 |
zweitaccount
Dabei seit: 25.01.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Sa 07.04.2012 09:40
Titel
|
 |
|
Guten Morgen,
läuft das unter Windows oder Linux? Weil
http://php.net/manual/ hat geschrieben: | Setting the socket timeout microseconds ('usec') does not work under Windows, at least under PHP/5.2.9: |
Mglw. das der Fehler?
Grüße
zweitaccount
|
|
|
|
 |
Anzeige
|
|
 |
qualidat
Threadersteller
Dabei seit: 14.09.2006
Ort: Eichwalde bei Berlin
Alter: 64
Geschlecht:
|
Verfasst Sa 07.04.2012 09:47
Titel
|
 |
|
Zur Zeit teste ich mit XAMPP unter Mac OS X, wenns fertig ist, soll es bei 1und1 laufen ... weiss nicht, unter welchem System deren Server laufen. Dachte immer, PHP sei weitgehend systemunabhängig. Gibts Alternativen, dem Socket die ewige Warterei auszutreiben?
Ich gebe auch gerne zu, dass ich die Parameter von "socket_set_option" nicht wirklich im Detail verstanden habe, ich konnte ausser der tausendfachen Wiederholung der relativ nichtssagenden Zeilen aus dem Hanbuch keine wirkliche detaillierte Erkärung, evtl. mit Beispielen, im Web finden.
Zuletzt bearbeitet von qualidat am Sa 07.04.2012 09:50, insgesamt 1-mal bearbeitet
|
|
|
|
 |
zweitaccount
Dabei seit: 25.01.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Sa 07.04.2012 10:31
Titel
|
 |
|
Was gibt dir denn
Code: | var_dump(socket_set_option($camsock,SOL_SOCKET,SO_RCVTIMEO)); |
zurück?
Wenn 'usec' leer, dann müsstest Du vlt. mal Php in xampp upgraden.
Übrigens schreibt einer das "sec" in Sekunden angegeben werden
und "usec" aber vermutlich in Millisekunden... falls Dir das was bringt.
Grüße
zweitaccount
|
|
|
|
 |
|
|
 |
Ähnliche Themen |
einlesen von socket(stream) in flash????
... Can't connect to local MySQL server through socket '/
[CSS] Tabulator setzen
Illustrator Fluchtpunkt setzen
Photoshop - Rahmen setzen
anker in ein div container setzen?
|
 |
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|