Daten an Port schicken
rap
- php
0 Mega0 rap
0 Tom0 Server aufsetzen
dedlfix
Hallo,
ich möchte Daten über PHP an einen tcp port schicken um eine bestimmte Datei oder Seite z.B. über http://localhost:8080 anzubieten.
Wie ist das mit PHP (ohne Webserver) möglich?
Wie ist das mit PHP (ohne Webserver) möglich?
Schau dir mal fsockopen(), fwrite() und fread() an.
Und du brauchst für PHP grundsätzlich nicht zwingend einen Webserrver, nur den PHP-Interpreter auf dem Rechner, auf de3m du PHP ausführen willst.
Vielen Dank für die Antwort.
Schau dir mal fsockopen(), fwrite() und fread() an.
Die Funktion fsockopen() habe ich schon gesehen, aber leider verstehe ich nicht ganz, wie es funktioniert, dass ich Daten an den Port sende.
Für mich sieht es so aus, als könnte ich nur Daten von einem Port empfangen...
Ich würde gerne einen HTTP Header (und HTML-Tags) an einen Port senden...
Gibt es irgendwo ein Beispiel dafür (ich finde leider nichts unter google, vielleicht gebe ich die falschen Begriffe ein)
Gruß
Hallo,
Schau dir mal fsockopen(), fwrite() und fread() an.
Für mich sieht es so aus, als könnte ich nur Daten von einem Port empfangen...
Ich würde gerne einen HTTP Header (und HTML-Tags) an einen Port senden...
du kannst keine Daten "an einen Port" senden. Ein UDP- oder TCP-Port ist ein Kommunikationskanal; man kann *durch* einen Port Daten an einen anderen Teilnehmer senden, nachdem man über diesen Port die Verbindung hergestellt hat. Und wenn du HTTP-Daten senden willst, setzt das voraus, dass am anderen Ende jemand diese Daten erwartet - das ist das Grundprinzip von HTTP: Teilnehmer A (Client) fordert an, Teilnehmer B (Server) antwortet. Dabei "klingelt" der HTTP-Client üblicherweise an Port 80 des Servers.
Es sieht für mich so aus, als wolltest du eher einen HTTP-Server in PHP nachempfinden. Möglich ist sowas natürlich - aber sinnvoll?
Um das zu realisieren, muss dein Server-Script nämlich erst einmal den gewünschten Port öffnen und auf eine Anforderung warten. Erst dann kann es die Anforderung bearbeiten und eine Antwort senden, und danach entweder enden oder wieder auf die nächste Anforderung warten.
Gibt es irgendwo ein Beispiel dafür (ich finde leider nichts unter google, vielleicht gebe ich die falschen Begriffe ein)
Ich glaube nicht, dass es für das, was du vorhast, schon ein Beispiel gibt. Normalerweise würde man einfach einen Webserver aufsetzen. Auf einem System, wo PHP läuft, dürfte es kein Problem sein, auch einen Apachen aufzusetzen.
Ciao,
Martin
Hallo Martin,
Es sieht für mich so aus, als wolltest du eher einen HTTP-Server in PHP nachempfinden.
Diese Aussage trifft mein Vorhaben...
Möglich ist sowas natürlich - aber sinnvoll?
Naja ich wäre auch mit einem fertigem plattformunabhängigen Webserver (bleibt fast nur Java oder PHP selbst) zufrieden.
Meine Anforderungen sind:
Der Webserver sollte so klein wie möglich sein (höchstens ein paar MB besser KB) und PHP unterstützen (und wie erwähnt plattformunabhängig sein)
Da ich so etwas noch nicht gefunden habe und mich mit Java nicht so gut auskenne (ok, mit PHP auch nicht, aber besser als mit Java), wollte ich versuchen so etwas selbst zu erstellen...
Hallo rap.
Der Webserver sollte so klein wie möglich sein (höchstens ein paar MB besser KB) und PHP unterstützen (und wie erwähnt plattformunabhängig sein)
Da fällt mir doch spontan Lighttpd ein.
Ist < 1 MB und verfügbar sowohl für Windows als auch Linux verfügbar.
Servus,
Flo
Der Webserver sollte so klein wie möglich sein (höchstens ein paar MB besser KB) und PHP unterstützen (und wie erwähnt plattformunabhängig sein)
Du weisst aber, wie gross alleine der PHP-Interpreter ist?
Irgenddwo hab ich auch mal ein Projekt gesehen, die den Apache ohne PHP auf 2MB gedrückt haben um ihn in einem Embedded-System laufen lassen zu können.
Schau doch mal unter http://uclinux.org/ nach ob du was findest, da in dem Bereich die Software auf grösse und weniger auf Geschwindigkeit getrimmt wird.
Hello,
siehe Google unter "Post2Host" :-)
http://www.php-faq.de/q-code-post.html
http://www.php-faq.de/q-code-upload.html
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg
echo $begrüßung;
ich möchte Daten über PHP an einen tcp port schicken um eine bestimmte Datei oder Seite z.B. über http://localhost:8080 anzubieten.
Du möchtest einen Server starten, der sich an eine bestimmte Adresse und Port bindet und da hört ob Verbindungen eingehen. Wenn eine reinkommt, möchtest du sie sicher akzeptieren und irgendwas damit anstellen. Dazu kannst du die Socket-Extension nehmen. Ein Beispiel gibts im Handbuch.
Und vielleicht willst du nicht nur einen Client sondern mehrere gleichzeitig bedienen, dann wird es aufwendig, musst du doch jede Verbindung einzeln behandeln. socket_select() hilft dir dabei.
Die Socket-Extension basiert auf den bekannten BSD Sockets. Wenn du zu Sockets unter PHP bei speziellen Problemen nicht recht fündig wirst, kannst du dir auch andere Dokumentation suchen, die die BSD-Sockets behandeln. Die Einleitung des Socket-Kapitels verweist beispielsweise auf solch eine Quelle.
Es gibt auch noch unter der Stream Functions welche, die sich generischer mit Sockets beschäftigen als die Socket Extension.
echo "$verabschiedung $name";