PHP - Socketfunktionen



  • Hi Community!

    Was muss ich machen, um die Socketfunktionen in PHP benutzen zu können. Laut diversen Dokumentationen ist dies eine Erweiterung.

    php-homepage.de:

    Die hier beschriebenen Socket Funktionen sind Teil einer PHP Erweiterung, die beim Kompilieren mit der Option --enable-sockets beim Befehl configure eingebunden werden muss.

    Muss ich den Quelltext wirklich neu compilieren? Gibt es keine Möblichkeit vie DLLs?

    Vielen Dank im Voraus!

    Konstantin



  • Hey,

    schau ma in Deine php.ini / bzw. phpinfo() und guck nach, ob es nicht schon einkompiliert/aktiviert ist(müsste standartmäßig so sein).

    Ansonsten kannst Du die Extension(dll/so) in Dein Extensions Dir legen und sie in der php.ini aktivieren.

    Hoffe ich konnte Dir helfen...

    Gruss



  • Danke, ich hab es jetzt hinbekommen.

    Jetzt hab ich eine neues Problem. Ich krieg heute noch zu viel....

    ich versuche zu einem NNTP-Server zu connecten. Hier mal mein PHP:

    <!doctype html public "-//w3c//dtd html 3.2 final//en">
    <html>
    	<head>
    		<title></title>
    	</head>
    
    	<body>
    		<?php
    			echo "<h2>NNTP Verbindung</h2>";
    
    			$service_port = getservbyname('nntp', 'tcp');
    			$address = gethostbyname('localhost');
    			$socket = socket_create(AF_INET, SOCK_STREAM, 0);
    			if($socket < 0)
    			{
    				 echo "ERROR: socket_create():<br>" . socket_strerror ($socket) . "<br><br>";
    				 exit;
    			}
    			else
    				echo "Socket OK!<br><br>";
    
    			echo "Connect to '$address' at port '$service_port'...<br><br>";
    
    			$result = socket_connect($socket, $address, $service_port);
    
    			if($result < 0)
    			{
    				echo "ERROR: socket_connect():<br>($result)<br>" . socket_strerror($result) . "<br><br>";
    			}
    			else
    			{
    				 echo "Socket connect OK!<br><br>";
    			}
    
    			$snd = "LIST\r\n";
    			$out = '';
    
    			echo "Send '$snd'...";
    			socket_write ($socket, $snd, strlen ($snd));
    			echo "OK.<br><br>";
    
    			echo "Answer from Server:<br>";
    			while ($out = socket_read($socket, 2048)) {
    				 echo $out;
    			}
    
    			echo "Close socket...";
    			socket_close ($socket);
    			echo "OK<br><br>";
    		?>
    	</body>
    </html>
    

    Das läst sich aber leider nicht ausführen. Der lädt nicht zu Ende... Wenn ich de Funktion socket_read auskommentiere, dann funzt es.

    Ersetze ich die 2048 duch eine 1, dann bekomme ich eine "2" ausgegeben!

    Wo ist der Fehler?

    Konstantin


Anmelden zum Antworten