Foros del Web » Programando para Internet » PHP »

Problema con Socket Php - No Escucha

Estas en el tema de Problema con Socket Php - No Escucha en el foro de PHP en Foros del Web. Hola, Tengo servidor 1 y servidor 2. En servidor 2 tengo un socket que tiene que estar siempre escuchando. Desde servidor 1 envío por socket ...
  #1 (permalink)  
Antiguo 26/10/2011, 15:52
 
Fecha de Ingreso: marzo-2008
Mensajes: 63
Antigüedad: 16 años, 1 mes
Puntos: 0
Busqueda Problema con Socket Php - No Escucha

Hola,


Tengo servidor 1 y servidor 2.

En servidor 2 tengo un socket que tiene que estar siempre escuchando.


Desde servidor 1 envío por socket un parámetro a servidor 2, servidor 2 recibe parámetro y procesa el dato esa parte está ok.

El problema es que cuando servidor 2 recibe parámetro el socket deja de escuchar y y tengo que volver a levantar el socket en servidor2.



Alguna idea como puedo solucionar este problema para que el socket este siempre escuhando?
  #2 (permalink)  
Antiguo 26/10/2011, 15:55
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema con Socket Php - No Escucha

Eso normalmente se hace en un ciclo que esta corriendo de forma permanente (while(true)) sin ver tu código actual es difícil saber porque no te sirve.

Saludos.
  #3 (permalink)  
Antiguo 26/10/2011, 16:03
Avatar de Melecio  
Fecha de Ingreso: julio-2011
Ubicación: Coahuila
Mensajes: 320
Antigüedad: 12 años, 9 meses
Puntos: 8
Respuesta: Problema con Socket Php - No Escucha

GatorV tiene razon

solo dale una configuracion que este haciendolo cada segundo

y con una sentencia decirle segun el dato true o false
si es false entonces copiar el mismo codigo que te conecta al puerto
y listo
  #4 (permalink)  
Antiguo 26/10/2011, 17:09
 
Fecha de Ingreso: marzo-2008
Mensajes: 63
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Problema con Socket Php - No Escucha

El Código del servidor es:

Código PHP:
<?
// ponemos unos variables
$host "127.0.0.1";
$port 1234;
// no se vensera el tiempo
set_time_limit(0);
// crea el socket

while(true){

$socket socket_create(AF_INETSOCK_STREAM0) or die("No se pudo crear el socket\n");
// bind el socket al port
$result socket_bind($socket$host$port) or die("No se pudo hacer el bind\n");
// Comiensa a escuchar las coneciones
$result socket_listen($socket3) or die("No se pudo escuchar las coneciones\n");
// acepta la conecion
$spawn socket_accept($socket) or die("No se pudo aseptar la conecion\n");
// Lee el imput del cliente
$input socket_read($spawn1024) or die("No se pudo leer el imput\n");

echo 
$input;



// limpia el imput del string
$input trim($input);
// Checa por donde llego el imput y lo manda para atras
$output strrev($input) . "\n";
socket_write($spawn$outputstrlen ($output)) or die("No se pudo escribir el imput\n");
// cierra la conecion
socket_close($spawn);
socket_close($socket);
}
?>

Código Cliente

Código PHP:
<?php 
/* 
Ejemplo 2, conexión via socket 
*/ 

// DEFINICIÓN DE VARIABLES 
$puerto 1234
$host "127.0.0.1"

// CREANDO EL SOCKET: (IP PROTOCOL[IPV4], TYPE SOCKET[TCP], PROTOCOL[TCP]) 
$socket socket_create(AF_INETSOCK_STREAMSOL_TCP); 
$conexion socket_connect($socket$host$puerto); 

// DEFINICIÓN DE VARIABLES 
$buffer "enviando parametro"
$salida ' '

// ESCRIBIENDO EL BUFFER EN EL SOCKET 
socket_write($socket$buffer); 

// LEYENDO RESPUESTA DEL SOCKET 
print "leyendo...\n"
while (
$salida socket_read($socket2048)){ 
echo 
$salida;} 

// CERRANDO LA CONEXIÓN 
socket_close($socket); 

?>

Al servidor agregue un while(true), eso está correcto???

Última edición por vito25; 26/10/2011 a las 17:35
  #5 (permalink)  
Antiguo 26/10/2011, 19:23
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema con Socket Php - No Escucha

Tienes que dejarlo escuchando todo el tiempo, es por eso la necesidad del while(true), yo le pondría un sleep(1) al final para que no este comiendo todo tu CPU.

Saludos.
  #6 (permalink)  
Antiguo 28/10/2011, 15:16
 
Fecha de Ingreso: marzo-2008
Mensajes: 63
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Problema con Socket Php - No Escucha

Como lo hago para que el archivo .php que viene siendo el servidor socket, se ejecute solo en servidor.?

Lo que necesito es que el socket que hace de servidor este siempre corriendo .

Última edición por vito25; 28/10/2011 a las 15:26
  #7 (permalink)  
Antiguo 28/10/2011, 16:04
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años
Puntos: 33
Respuesta: Problema con Socket Php - No Escucha

Vito25:
El manual de php tiene un ejemplo muy sencillo,
practico y funciona bien.
http://www.php.net/manual/en/sockets.examples.php
Saludos
Franco
  #8 (permalink)  
Antiguo 28/10/2011, 18:34
 
Fecha de Ingreso: marzo-2008
Mensajes: 63
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Problema con Socket Php - No Escucha

Voy a intentar,

Como logro que se ejecute solo en el servidor, tengo acceso root?

Etiquetas: socket
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:18.