Ver Mensaje Individual
  #4 (permalink)  
Antiguo 18/10/2011, 07:57
Avatar de jotaincubus
jotaincubus
 
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años, 6 meses
Puntos: 394
Respuesta: [APORTE] Aplicación para entender SOCKETS PHP

Bueno aca dejo el codigo servidor cambiando la funcion que esta OBSOLETA:

Codigo SERVIDOR:
Código PHP:
Ver original
  1. <?php
  2. // dejamos en cero para que la conexion acepte la conexiones a ese y esta nunca se cierre
  3.  
  4. // creamos el array que contiene la informacion que queremos buscar
  5. $contenido = array('banano' => 10, 'manzana' => 18, 'peras' => 50);
  6. // la ip del servidor en la cual se va a crear el socket
  7. $ip = '127.0.0.1';
  8. // el puerto por el cual escuchara peticiones
  9. $puerto = '7001';
  10.  
  11. /* CREANDO EL SOCKET
  12. AF_INET sirve para especifcar el protocolo en que se basara la conexion (AF_INET - AF_INET6 - AF_UNIX)
  13. SOCK_STREAM indica como se enviaran y recibiran los bytes en la conexion
  14. */
  15. $socket = socket_create(AF_INET, SOCK_STREAM, getprotobyname('tcp'));
  16. // vinculamos el puerto a la IP
  17. socket_bind($socket, $ip, $puerto) or die ('No se puede vincular el puerto a la IP');
  18. // en caso de error lo mostramos para saber que pasa
  19. // hacemos el que socket escuche peticiones
  20. socket_listen($socket);
  21.  
  22. while(1){
  23.     // aceptamos la conexion que nos entre
  24.     $cliente[++$i] = socket_accept($socket);
  25.     // leemos la informacion que nos envian
  26.     $input = socket_read($cliente[$i], 1024);
  27.     // quitamos espacios y saltos de linea de lo que se lee
  28.     $ticker = preg_replace("[ \t\r\n]", "", $input);
  29.     // escribimos lo que recibimos
  30.     echo "Ticker: $ticker";
  31.    
  32.     if(array_key_exists($ticker, $contenido)){
  33.         // ahora si buscamos la informacion que leimos en el socket
  34.         // dentro del array de contenido
  35.         $precio = $contenido[$ticker];
  36.     }else{
  37.         // si no existe pues le decimos que lo que
  38.         // busco no esta dentro del contenido
  39.         $precio = "No se encontro el ticket";
  40.     }
  41.     // escribimos los resultados que encontramos dentro del
  42.     // array en el socket para que el cliente los lea
  43.     socket_write($cliente[$i], $precio . "\n\r", 1024);
  44.     // cerramos la conexion de ese cliente
  45.     socket_close($cliente[$i]);
  46. }
  47. // cerramos la conexion global
  48. socket_close($socket);
  49. ?>
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???