Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/01/2008, 16:08
loginhotel
 
Fecha de Ingreso: abril-2004
Ubicación: Barcelona
Mensajes: 242
Antigüedad: 20 años
Puntos: 0
socket_write no envia :S

Hola, he echo un XMLSocket con Flash y php, funciona correctamente, pero no envia datos de Servidor > Cliente, puedo enviarlos desde el Cliente > Servidor i recivirlos correctamente, el codigo es este a ver si me podeis echar una mano:

Código PHP:
#!/usr/bin/php -q
<? 
error_reporting
(E_ALL);
ob_implicit_flush();
$address '127.0.0.1';
$port 9999;
if ((
$master socket_create(AF_INETSOCK_STREAMSOL_TCP)) < 0) {
   print (
"[WON] socket_create() failed, reason: " socket_strerror($master) . "\n");
}
socket_set_option($masterSOL_SOCKET,SO_REUSEADDR1);
if ((
$ret socket_bind($master$address$port)) < 0) {
   print (
"[WON] socket_bind() failed, reason: " socket_strerror($ret) . "\n");
}
if ((
$ret socket_listen($master5)) < 0) {
   print (
"[WON] socket_listen() failed, reason: " socket_strerror($ret) . "\n");

$read_sockets = array($master);
print (
"[WON] Servidor iniciado en ".$address.":".$port." para ".$read_sockets."!\n");
while (
true) {
   
$changed_sockets $read_sockets;
   
$num_changed_sockets socket_select($changed_sockets$write NULL$except NULLNULL);
   foreach(
$changed_sockets as $socket) {
       if (
$socket == $master) {
           if ((
$client socket_accept($master)) < 0) {
               print (
"[WON] socket_accept() failed: reason: " socket_strerror($msgsock) . "\n");
               continue;
           } else {
               
array_push($read_sockets$client);
           }
       } else {
           
$bytes socket_recv($socket$buffer020480);
           
$buffer explode(', '$buffer0);
           if (
$bytes == 0) {
               
$index array_search($socket$read_sockets);
               unset(
$read_sockets[$index]);
               
socket_close($socket);
           }else{
                @include(
$buffer[0].".php");
                
socket_write($client"a"); //AQUI ES, PERO NO ENVIA
            
}
       }
      
   }
}
?>
En cambio pongo:
Código PHP:
socket_write($client$buffer0); 
i envia al cliente lo mismo que envio el cliente al servidor, pero solo con ese funciona he provado a poner
Código PHP:
$buffer0 "a";
socket_write($client$buffer0); 
y nada. A que se debe?

Gracias