SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Einführung in XHTML, CSS und Webdesign

Einführung in XHTML, CSS und Webdesign zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 01.11.2016, 19:13:16
mp2013 mp2013 ist offline
Anfänger
 
Registriert seit: Nov 2016
Alter: 44
Beiträge: 4
Interprozesskommunikation mit Apache und PHP

Hi,

ich habe eine Client-Anwendung, die eine Anfrage an einen Apache-Server sendet.
Der Apache-Server baut eine Tcp/IP-Verbindung zu einer serverseitigen Anwendung auf, leitet die Anfrage weiter und wartet auf das Ergebnis, welches an den Client zurückgeschickt wird.

Bisher lief das Ganze über ein CGI Skipt in Tcl.
Nun möchte ich das Overhead durch wiederholtes Starten und Beenden des Tcl-Interpreters beseitigen, indem ich statt Tcl, PHP verwende.

Als Null-Anfänger in Sachen PHP, habe ich mir mithilfe der ganzen Internet-Beiträge ein Skript zusammengebaut, was sogar gut funktioniert.

Allerdings frage ich mich, ob es auch robust ist. Könntet ihr eventuell drüber schauen und mir eure Meinung sagen? Fehlen da eventuell noch irgendwelche Feinheiten? Die serverseitige Anwendung kann auch mehrere Anfragen gleichzeitig behandeln. Kann das mein PHP Skript auch?

Skript ist unten beigefügt.

Vielen Dank
Alex

PHP-Code:
<?php
//phpinfo.php

// Test this script
// http://127.0.0.1:80/phpinfo.php?cmd=ServerTest

if(!($sock socket_create(AF_INETSOCK_STREAM0)))
{
    
$errorcode socket_last_error();
    
$errormsg socket_strerror($errorcode);

    die(
"Couldn't create socket: [$errorcode] $errormsg \n");
}

if(!
socket_connect($sock 'localhost' 2))
{
    
$errorcode socket_last_error();
    
$errormsg socket_strerror($errorcode);

    die(
"Could not connect: [$errorcode] $errormsg \n");
}

$s "";
foreach (
$_GET as $key => $value) {
    
$s $s $value " ";
}

$sock_data socket_write($sock$s); //Send data
echo socket_read($sock,1000);

socket_close($sock);

?>
Mit Zitat antworten
  #2  
Alt 02.11.2016, 10:21:48
chorn chorn ist offline
Junior Member
 
Registriert seit: Apr 2016
Alter: 44
Beiträge: 171
AW: Interprozesskommunikation mit Apache und PHP

da jeder Request an PHP als eigener Thread läuft sollten parallele Anfragen kein Problem sein. Du kannst noch die Rückgabe von socket_write() abfragen (siehe Manual).
Mit Zitat antworten
  #3  
Alt 02.11.2016, 11:36:55
mp2013 mp2013 ist offline
Anfänger
 
Registriert seit: Nov 2016
Alter: 44
Beiträge: 4
AW: Interprozesskommunikation mit Apache und PHP

Danke chorn. Ich werde den Wert von socket_write abfragen und den geänderten Code hier posten. Bis bald!
Alex
Mit Zitat antworten
  #4  
Alt 03.11.2016, 14:08:13
mp2013 mp2013 ist offline
Anfänger
 
Registriert seit: Nov 2016
Alter: 44
Beiträge: 4
AW: Interprozesskommunikation mit Apache und PHP

Ich bin gerade über socket_read($sock,1000) gestolpert.
Das zweite Argument ist die Anzahl Bytes, die höchstens gelesen wird. Was wenn ich aber nicht weiß, wie lang das Ergebnis sein wird? Soll ich einfach eine sehr große Zahl dort eingeben?
Mit Zitat antworten
  #5  
Alt 03.11.2016, 16:46:13
chorn chorn ist offline
Junior Member
 
Registriert seit: Apr 2016
Alter: 44
Beiträge: 171
AW: Interprozesskommunikation mit Apache und PHP

dann machst du das einfach immer weiter

http://php.net/manual/de/function.socket-read.php
http://stackoverflow.com/questions/2...of-socket-read
Mit Zitat antworten
  #6  
Alt 03.11.2016, 18:36:52
mp2013 mp2013 ist offline
Anfänger
 
Registriert seit: Nov 2016
Alter: 44
Beiträge: 4
AW: Interprozesskommunikation mit Apache und PHP

Okay, ich habe es im Prinzip verstanden. Allerdings läuft bei mir die do Schleife unendlich:

$cur_buf = '';
do {
if (false === ($buf = socket_read($sock,2048))) {
break;
} else $cur_buf .= $buf;
} while (true);

Eine andere Sache die mich stört: Die Performance von dem Skript ist viel niedriger als ich es erwartet habe. Ich habe es gemessen und über den alten Ansatz (cgi Skript in Tcl) erhalte ich dieselbe Geschwindigkeit wie über PHP, obwohl PHP als Apache-Modul ausgeführt wird, also der Interpreter nicht mehr jedes mal initialisiert werden muss.
Mit Zitat antworten
  #7  
Alt 03.11.2016, 19:17:20
chorn chorn ist offline
Junior Member
 
Registriert seit: Apr 2016
Alter: 44
Beiträge: 171
AW: Interprozesskommunikation mit Apache und PHP

Weder in der Dokumentation noch bei Stackoverflow steht, dass die Funktion am Ende false zurückliefert.

Dann liegt dein Problem wohl nicht beim Prozessoverhead, kann halt sein, dass die Gegenstelle einfach nicht schneller antwortet, das musst du dann wohl erstmal mit anderen Tools testen.
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem mit Apache und PHP Extensions phantom001 Apache HTTP-Server 3 25.01.2012 10:25:02
[Howto] Webseiten beschleunigen mit mod_cache bazubi Apache HTTP-Server 9 10.06.2008 11:27:08
Benötige Hilfe bei grundlegendem Problem mit PHP, Apache und MySql Dr.Wackelzahn PHP Grundlagen 0 10.02.2005 15:42:41
Fehlermeldung mit apache und php xabbuh Apache HTTP-Server 3 11.09.2003 16:01:04
PHP, mail(), Suse Linux und Apache Hanibalecta PHP für Fortgeschrittene und Experten 2 22.12.2002 16:42:22


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:05:50 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt