Ruby: abrir un socket mulithread

En un post anterior, vimos como abrir un socket para una única conexión entrante. Es interesante poder enviar datos y recibirlos de un equipo, pero mucho más interesante es poder hacer un servidor en condiciones que permita escuchar y responder a varias conexiones al mismo tiempo.
Continúa leyendo para ver el código de un servidor multihilo.
/usr/bin/ruby -w

require 'socket'

server = TCPServer.open(4096)
loop {
  Thread.start(server.accept) do |client|
     client.puts "Conexion abierta"
     print(client, " aceptado\n") 
     client.write(Time.now.ctime) 
     sleep 3
     client.write("\nCerrando la conexion\n")
     client.close
     print(client, " cerrado\n")
  end
}

Con este código se permite la conexión simultánea de varios clientes al mismo tiempo, dándole respuestas en paralelo a todos ellos. Como se observa, algo muy simple que permite interactuar fácilmente a varios clientes con un único servidor, al más puro estilo web service.


No hay comentarios :

Publicar un comentario

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Últimos comentarios