Daten an IP Adresse senden
McKentire
- php
0 stareagle
Guten Tag, :)
ist es (theoretisch / praktisch) möglich, Daten per PHP an eine IP Adresse, also zu einem Benutzer zu senden?
Folgende Problematik: Benutzer A ruft eine PHP Datei auf. Diese soll nun Benutzer B informieren, sprich Daten an diesen schicken.
Gibt es diese Möglichkeit?
MfG,
McKentire
Moin!
Gibt es diese Möglichkeit?
Das erfordert aber, dass bei diesem Nutzer B ein Server auf eingehende Verbindungen wartet. Ein simpler Browser, der offen ist, tut es keinesfalls.
- Sven Rautenberg
Moin!
Gibt es diese Möglichkeit?
Das erfordert aber, dass bei diesem Nutzer B ein Server auf eingehende Verbindungen wartet. Ein simpler Browser, der offen ist, tut es keinesfalls.
- Sven Rautenberg
Danke schonmal für die Antworten. :)
Wie sieht es mit dritten Anwendungen aus, die auf solche Verbindungen horchen?
JavaScript, Java-Applet, Adobe Flash?
MfG,
McKentire
Yerf!
Wie sieht es mit dritten Anwendungen aus, die auf solche Verbindungen horchen?
Diese wäre dann ein Server... ja, genau das ist der Weg.
JavaScript, Java-Applet, Adobe Flash?
Komponenten die innerhalb eines Browsers laufen dürfen keine Verbindungen annehmen, können also kein Server sein. Hier muss schon eine seperate Anwendung her[1].
Gruß,
Harlequin
[1] evtl. könnte ein signiertes Java-Aplett auf Nachfrage beim User die entsprechenden Rechter erhalten.
Komponenten die innerhalb eines Browsers laufen dürfen keine Verbindungen annehmen, [...]
Wie sieht es mit XMLSockets bei Flash aus? In dem Fall einer XMLSocket-Verbindung ist die Flash Datei doch mit dem Server eine Verbindung eingegangen? ^^
MfG,
McKentire
Yerf!
Wie sieht es mit XMLSockets bei Flash aus? In dem Fall einer XMLSocket-Verbindung ist die Flash Datei doch mit dem Server eine Verbindung eingegangen? ^^
Mit denen kenn ich mich jetzt nicht aus, denke aber mal, dass die sich nicht großartig vom XMLHTTP-Request in JavaScript unterscheiden. Hier wird keine Verbindung angenommen, sondern eine Verbindung zum Server aufgebaut (andere Richtung). Außerdem ist damit auch nur eine Verbindung auf den Webserver zurück erlaubt, nicht auf irgendeinen anderen.
Evtl. könnte man das Benutzen um eine Nachricht zwischen 2 Usern auszutauschen, allerdings muss dann der (Web)Server eine Vermittler-Rolle übernehmen.
Gruß,
Harlequin
Moin Moin!
Um mal ein wenig Spielverderber zu spielen: Beide benutzer könnten von einem Rechner hinter einem Proxy oder einem Masquerading Gateway surfen. Letzteres ist dank gängiger DSL-Router gar nicht so selten, ersteres ist typisch für größere Firmen. REMOTE_ADDR gibt dann nicht die Adresse des Surfrechners, sondern des Proxies oder des Gateways ist.
Paranoide Benutzer könnten über Anonymisierungsnetzwerke (z.B. Tor) surfen, was jedem Request eine andere REMOTE_ADDR verpaßt.
In all diesen Fällen wird ein connect() auf die REMOTE_ADDR erfolglos sein.
Lösungsansätze:
* Ein anderes Protokoll für die Kommunikation verwenden, z.B. SSH oder Telnet. (Beide werden aus Firmennetzwerken aber oft geblockt.)
* Polling, sprich: Regelmäßig nachfragen, ob neue Benachrichtigungen vorliegen. Das erzeugt eine beachtliche Last auf dem Server.
* Verzögerte Antworten. Eigentlich auch Polling, aber statt sofort mit ja oder nein zu antworten, wartet der Server-Prozess eine Weile auf eine Benachrichtigung durch einen anderen Server-Prozess, bevor er mit nein antwortet. Hier bietet sich AJAX natürlich an. Auch dieses Verfahren erzeugt eine beachtliche Server-Last.
Die große Frage bleibt: Was hat McKentire genau vor? Den millionsten HTTP-vergewaltigenden Chat implementieren?
Alexander
Hallo Harlequin,
Komponenten die innerhalb eines Browsers laufen dürfen keine Verbindungen annehmen, können also kein Server sein. Hier muss schon eine seperate Anwendung her[1].
Das ließe sich umgehen, in dem man die Browserkomponente die Verbindung eröffnen ließe und diese Verbindung dann dauerhaft geöffnet hielte.
Eine einfachere Alternative wäre, mit JavaScript in regelmäßigen Abschnitten den Server zu kontaktieren und zu überprüfen, ob eine neue Nachricht vorliegt.
Vielleicht kann McKentire ja noch was genauer beschreiben, was er eigentlich vorhat, dann ist es wahrscheinlich einfacher eine geeignete Lösung zu finden.
Schöne Grüße,
Johannes