PHP Sockets 5.2

  • Guten Tag,


    seit anfangs Woche habe ich mein Intra ( Intranet / Mitarbeiterpanel ) auf einen Webhoster versetzt. Dieser Webhoster benützt PHP 5.4.24 und Apache. Nun da meine Serverip geheim bleiben soll, und das Intra ne SSL Verbindung bekommen hat, mussten wir auf den Webhoster ziehen... Seit dem, musste ich die ganze Core umprogrammieren damit alles wieder anzeigt. Nun mein Problem ist, die Socket Verbindung gehen nicht mehr. Das Intra verbindet sich nicht mit meinem Gameserver, auf dem Gameserver kommen keine Packete an. Nun, da ich mich nie richtig beschäftigt habe mit Sockets frage ich euch.
    Vorher habe ich die Version 5.2 benütz, und das hat perfekt funktioniert.


    Bei der Domain benützen wir Cloudflare. Beim Gameclient einen TCP Proxy von Load.Lu, der ziemlich gut ist.


    Hier der PHP Sockets Code:

    PHP
    1. define('SEP', DIRECTORY_SEPARATOR);$dir = str_replace('register'.SEP, '', dirname(__FILE__).SEP);define('DIR', $dir);define('INCLUDES', DIR.''.SEP);
    2. $core = new Core();class Core { public function MUS($command, $data = ''){ $MUSdata = $command . chr(1) . $data; $socket = @socket_create(AF_INET, SOCK_STREAM, getprotobyname('tcp')); @socket_connect($socket, '2*.**.**.**', '****'); @socket_send($socket, $MUSdata, strlen($MUSdata), MSG_DONTROUTE); }}


    Die PHP Info zum neuem Intra ist hier zu finden: https://intra.habbo.li/info.php


    Mit freundlichen Grüssen,


    xStarx77

  • Nun mein Problem ist, die Socket Verbindung gehen nicht mehr.


    Das ist keine vernünftige Problembeschreibung.


    Ich würde zuerst mal die @ vor den Functionsaufrufen entfernen, denn es ist keine gute Idee, eventuelle Meldungen zu unterdrücken, wenn man einen Fehler sucht. Und an den Anfang des Scriptes solltest du diese Zeilen einbauen:

    PHP
    1. error_reporting(E_ALL);
    2. ini_set("display_errors", true);
  • Naja, die Fehler sind nur nicht definierte Sachen.


    Nun hier Screen von einer Seite:

    Link: http://puu.sh/8dxkF.png


    Die Durchaus von bedeutung sein können. Verwendest du in PHP eine nicht definierte Variable wird der wert NULL angenommen. Und dass das nicht immer das gewünschte Verhalten hervorruft ist ja logisch. Wir bräuchten also aus home.php den relevaten code um die Zeile 142.

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.


    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!