WinFuture-Forum.de: (php) Daten Mit Socket_read Lesen - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

(php) Daten Mit Socket_read Lesen


#1 _PelzigesWaldtier_

  • Gruppe: Gäste

geschrieben 30. Juli 2006 - 21:11

Hallo,

ich weiss leider nicht genau wie ich Daten von einem Socket lesen kann. Ich habe im Manual die Funktion socket_read gefunden aber ich kann sie nicht richtig anwenden. Hier zuerst einmal der Anfang des Scripts:

$socket = socket_create(AF_INET, SOCK_STREAM, 6);
socket_bind($socket, '127.0.0.1', 80);
socket_listen($socket);


Und jetzt gehe ich auf die eingehenden Verbindungen ein:

while (true) {
  $socket_conn = socket_accept($socket);
  socket_getpeername($socket_conn, $addr);
  echo "# incoming connection from ".$addr."\n";


So, jetzt folgt der Teil des Lesens.
  while(true) {
	$buffer = @socket_read($socket_conn, 128, PHP_NORMAL_READ);
	echo '* reading: "'.$buffer."\"\n";
  }
}


Natuerlich bekomme ich jetzt eine Reihe von * reading "", weil socket_read einen leeren string zurueck gibt, wenn es keine Daten mehr gibt. Wenn ich aber $buffer vorher mit empty() ueberpruefe, dann empfange ich gar keine Daten. Es wird auf jeden Fall nichts angezeigt.

Und wenn ich folgendes versuche, dann empfange ich auch nichts.

  $buffer = @socket_read($socket_conn, 128, PHP_NORMAL_READ);
  while(!empty($buffer)) {
	$buffer = @socket_read($socket_conn, 128, PHP_NORMAL_READ);
	echo '* reading: "'.$buffer."\"\n";
  }


Ich wuerde mich freuen, wenn mir da jemand weiterhelfen koennte. Vielen Dank schonmal im Vorraus.

Gruesse,
PelzigesWaldtier
0

Anzeige



#2 _PelzigesWaldtier_

  • Gruppe: Gäste

geschrieben 30. Juli 2006 - 23:48

Ich habe meinen Fehler gefunden.

while (true) {
  $socket_conn = socket_accept($socket);
  socket_getpeername($socket_conn, $addr);
  echo "# incoming connection from ".$addr."\n";
  
  $buffer = @socket_read($socket_conn, 1024);
  if (!$buffer == null) {
	$buffer = ereg_replace("[ \t\n\r]", '', $buffer);
	if (strlen($buffer) > 0) {
	  echo '* reading ('.strlen($buffer).' chars): "'.$buffer."\"\n";
		
	  socket_write($socket_conn, file_get_contents('C:\Archivos de programa\xampp\htdocs\httpd_php\index.page'));
	  socket_close($socket_conn);
	}
  }
}


Sorry fuer so einen unueberlegten Thread.
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0