[PHP] Socket-Resource über mehrere Seiten beibehalten
-
Hallo!
Wie ist es möglich auf Seite2.php den Socket den ich per fsockopen auf Seite1.php benutzt habe weiterzubenutzen?
Ich habe versucht die resource die mir fsockopen ausgibt auf Seite1.php in der $_SESSION zu speichern. Jedoch scheint das Resultat auf Seite2.php ungültig zu sein. feof kann da nicht mehr mit diesem socket umgehen => er ist ungültig.
Wieso kann ich die Resource nicht in der $_SESSION Variable speichern?
Welche Möglichkeiten gibt es dann für mich? Einfach neu auf der anderen Seite zu verbinden ist nicht drin.....
Bitte um schnelle Hilfe,
Gruß,
Kevin
-
pfsockopen
-
reicht leider nicht
feof und fgets können auf Seite2 nicht mehr damit umgehen....damn
Sonst noch Vorschläge?
-
Mir fällt gerade auf:
Wenn ich per netcat nen Server aufmach und auf ihn zugreife, kommt so hallo an:
$servus = fsockopen("127.0.0.1", 6667); fputs($servus, "hallo");
so aber nicht:
$servus = pfsockopen("127.0.0.1", 6667); fputs($servus, "hallo");
Muss ich pfsockopen irgendwie freischalten oder wieso wird da nichts versendet?
Gruß,
Kevin
-
ok, das lag wohl an meinem server....hab jetzt nen funktionierenden Server, aber mein Hauptproblem ist noch immer nicht gelöst *heul*
Es muss doch irgendwie möglich sein auf einer anderen Seite den gleichen Socket zu verwenden? Wie unflexibel ist PHP eigentlich?
Oder mach ich irgendwas falsch?
<? if(!isset($SID)) { session_start(); $_SESSION['sock'] = pfsockopen("localhost", "1234"); } else { session_id($SID); session_start(); } fputs($_SESSION['sock'], "Hallo\n"); echo "ausgeben<br>"; $ID = session_id(); echo "<meta http-equiv=refresh content=\"10; URL=sockettest.php?SID=$ID\">"; ?> Beim ersten Aufruf wird Hallo an den Server geschickt, kaum wird die Seite neu geladen: [code] Warning: fputs(): supplied argument is not a valid stream resource in C:\apachefriends\Serverroot\MyIRC\sockettest.php on line 18 ausgeben [/code] Das is doch....... :rage: Gruß, Kev
-
Wenn ich das richtig verstanden habe, dann muss man schon jedesmal pfsockopen aufrufen, aber ggf. wird dann eben die alte Verbindung weiterverwendet - wobei aus den Kommentaren hervorgeht, dass das anscheinend auch nicht wirklich zuverlässig ist, da das Ganze pro Prozess gehandhabt wird und nicht unbedingt der selbe Prozess die nächste Anfrage bearbeitet...
-
na endgeil und wie mach ichs dann zuverlässig?
vor allem muss die seite mehrfach aufrufbar sein und somit müssen MEHRERE verbindungen herstellbar sein.
Wenn der mit pfsockopen immer auf die GLEICHE zurückgreift hab ich ja nur EINE ....
-
PHP ist ja auch nicht für Socketkomm. entwickelt worden.Schreibe dir einen richtigen Server der das macht. PHP macht es Grundsätzlich richtig.
Man kann ene Socketverb. aufbauen. Sogar ein Server ist möglich. Wenn das Script beendet ist dann ist auch der Socket weg. (Grundsätzlich mit ausnahmen)