Foros del Web » Programando para Internet » PHP »

Clase pserver - Servidor Listen Socket en PHP

Estas en el tema de Clase pserver - Servidor Listen Socket en PHP en el foro de PHP en Foros del Web. En la red, no hay muchos recursos que hablen sobre listen socket en PHP como en otros lenguajes. Es verdad que el manejo de listen ...
  #1 (permalink)  
Antiguo 24/02/2010, 22:56
Avatar de DeeR  
Fecha de Ingreso: diciembre-2003
Ubicación: Santiago
Mensajes: 520
Antigüedad: 20 años, 4 meses
Puntos: 17
De acuerdo Clase pserver - Servidor Listen Socket en PHP

En la red, no hay muchos recursos que hablen sobre listen socket en PHP como en otros lenguajes. Es verdad que el manejo de listen socket es mas eficiente en otros lenguajes como python, java o C/C++, pero es posible hacer servidores que escuchen en una ip y puerto en PHP.

Comparto mi clase pserver como base para realizar servidores en php, la cual es la encargada del socket en escucha, recibir clientes y encargarse de las peticiones de los clientes, lo ideal es extender la clase pserver y sobreescribir los metodos read y write para el uso que sea necesario.

La clase pserver la pueden descargar desde el articulo pserver o php-classes (y ademas me dejan un user ratings xD)

Tengo 4 ejemplos de uso de la clase pserver, tres de ellos extienden a la clase.

- Servidor echo MD5, si hace un telnet hacia el servidor y escribe alguna palabra, este responde el hash md5 de la palabra
- Servidor echo Base64, lo mismo que el anterior, pero usando la funcion base64_encode
- Servidor de Chat, Si se conectar al servidor (via telnet) pueden conversar con los otros usuarios conectados y ejecutar un par de comandos del chat (:clock :w :clear :funny )
- [b]Servidor Web , es una implementación muy pero muy básica de un servidor web, pero funciona
- Consola Shell Remota , Este ejemplo es mas controversial, ya que deja una consola /bin/sh en escucha en una determinada ip - puerto, pudiendo ejecutar comandos directamente en el servidor (los cuales se van a ejecutar con el usuario que corra el script, ejemplo nobody) e inclusive permite abrir y editar archivos con vim. Inclusive si tenemos acceso al interprete de python, podemos atachar una tty y realmente tener una consola donde podamos ejecutar comandos que necesiten de una tty (como top,passwd,etc....) sobre el servidor.

Para ejecutar los ejemplo se puede hacer directamente desde una consola o a traves de la web, recuerden que es posible que el servidor tenga los puertos filtrados, si es asi, no van a poder acceder a la ip-puerto ya que van a estar filtrados.

Para que conversemos sobre el tema de socket listen en php (ya que he trabajo son socket listen en otros lenguajes)

Saludos.
  #2 (permalink)  
Antiguo 24/02/2010, 23:12
 
Fecha de Ingreso: febrero-2010
Mensajes: 4
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Clase pserver - Servidor Listen Socket en PHP

Hola, como ejecuto los ejemplos de servidores (tengo acceso a un centos) ?
  #3 (permalink)  
Antiguo 24/02/2010, 23:36
Avatar de DeeR  
Fecha de Ingreso: diciembre-2003
Ubicación: Santiago
Mensajes: 520
Antigüedad: 20 años, 4 meses
Puntos: 17
Respuesta: Clase pserver - Servidor Listen Socket en PHP

En cualquier entorno "like unix" que tenga el interprete de php debe ser
Código:
php /ruta-de-script/example.pshell.php
(ahora si el script tiene la ruta del interprete de php en la primera linea y tiene permisos de ejecución, lo puedes ejecutar con un ./example.pshell.php), tambien podrias dejar corriendo el script en una screen.



Desde windows es similar (si es que tienes en el path global el directorio bin de php)
Código:
php c:/example.chat.php
Ademas se puede ejecutar desde un entorno web, pero es probable que si pasa mucho tiempo o inactividad , etc el proceso muera , aunque depende de la configuración del servidor web.


Ahora el ejemplo pshell solo funciona en entornos like unix, ya que utiliza los modulos pcntl y ademas usa /bin/sh, pero el resto deberia funcionar en un entorno windows
  #4 (permalink)  
Antiguo 22/03/2010, 05:58
 
Fecha de Ingreso: febrero-2008
Mensajes: 20
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: Clase pserver - Servidor Listen Socket en PHP

Hola Deer, un trabajo muy interesante, enhorabuena.

Te comento, solo he trabajado a nivel básico a través de sockets, enviando peticiones GET o POST a traves del puerto 80 mediante fscokopen y poco más, ahora estoy trabajando con un dispositivo que envía tramas TCP/IP a través de un puerto, necesito recoger estas tramas y guardarlas en una base de datos.

¿Sería esto posible con tu clase?

Muchas gracias.

Un saludo.
  #5 (permalink)  
Antiguo 24/03/2010, 05:45
Avatar de DeeR  
Fecha de Ingreso: diciembre-2003
Ubicación: Santiago
Mensajes: 520
Antigüedad: 20 años, 4 meses
Puntos: 17
Respuesta: Clase pserver - Servidor Listen Socket en PHP

Cita:
Iniciado por edualven Ver Mensaje
Hola Deer, un trabajo muy interesante, enhorabuena.

Te comento, solo he trabajado a nivel básico a través de sockets, enviando peticiones GET o POST a traves del puerto 80 mediante fscokopen y poco más, ahora estoy trabajando con un dispositivo que envía tramas TCP/IP a través de un puerto, necesito recoger estas tramas y guardarlas en una base de datos.

¿Sería esto posible con tu clase?

Muchas gracias.

Un saludo.
Hola edualven

Efectivamente puedes utilizar la clase pserver para lo que quieres realizar,tienes que extender a la clase pserver y sobreescribir el metodo read y al momento de leer los datos los guardas en la db.



Saludos.

Etiquetas: listen, server, 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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 21:52.