Underc0de

Programación Scripting => Ruby => Mensaje iniciado por: Sanko en Septiembre 05, 2012, 06:18:25 PM

Título: Conexíon Cliente/Servidor - Sanko
Publicado por: Sanko en Septiembre 05, 2012, 06:18:25 PM
Bueno , aquí ando practicando con sockets y decidi armar una conexión cliente/servidor sencilla para que otros puedan usar esta base para futuros proyectos.

Asi que aqui dejo la base del Cliente :

Código (ruby) [Seleccionar]
#Coded by Sanko
require 'socket'
print "Escriba el host al que conectarse : \n"
host = gets.chomp # Indicamos host
print "Escriba el puerto al que conectarse : \n"
puerto = gets.chomp # Indicamos puerto
sock = TCPSocket.open(host, puerto) #Nos conectamos al host indicado escuchando el puerto indicado

while line = sock.gets
puts line.chop
end
sock.close #cerramos conexion


Aqui dejo la base del Server :

Código (ruby) [Seleccionar]
#Coded by Sanko
require 'socket'
server = TCPServer.open(85) # Nos conectamos por el puerto 85 POR DEFAULT , se puede cambiar
loop { #Creamos un bucle con FINAL , se peuden hacer infinitos , Imaginaros para que ;)
Thread.start(server.accept) do |cliente| # Iniciamos la conexion cliente-servidor
cliente.puts(Time.now.ctime)
cliente.puts 'Prueba de conexion cliente - servidor | Sanko | Ruby' #Enviamos un texto
cliente.close #Cerramos conexion
end
}


A partir de ahí podeís ir añadiendo mas cosas , etc.

Por ejemplo que el cliente genere al servidor :

Código (ruby) [Seleccionar]
#Coded by Sanko
require 'socket'
print "Escriba el host al que conectarse : \n"
host = gets.chomp # Elejimos host
print "Escriba el puerto al que conectarse : \n"
puerto = gets.chomp #Elejimos puerto

File.open('server.rb', 'w') do |config| #Abrimos/Creamos "server.rb"
#Lo modificamos para que dentro de ese archivo se escriba el codigo del server
config.print"
require 'socket'
server = TCPServer.open(85)
loop {
Thread.start(server.accept) do |cliente|
cliente.puts(Time.now.ctime)
cliente.puts 'Prueba de conexion cliente - servidor | Sanko | Ruby'
cliente.close
end
}"
end


print "Servidor creado correctamente , por favor ejecute server.rb como su \n"
print "Ahora pulse enter para continuar \n"
cualquiertecla = gets.chomp # pulsamos enter


sock = TCPSocket.open(host, puerto) #Nos conectamos a host y puerto

while line = sock.gets
puts line.chop
end
sock.close #Cerramos conexion


Y tambien muchas otras cosas , las cuales no dire ya que si no tal vez JODAIS mis proyectos...
Es cosa de IMAGINACIÓN , nada mas...

Una vez ejecutado queda :

(http://i.imgur.com/NGcWU.png)

Un saludo y sigan dandole al ruby , tiene futuro.