[Ruby] Sockets
Publicado: 21 Jun 2012, 05:24
Bueno muy basico. Ulitmamente e estado tratando de interactuar con este lenguaje y bueno atratar algo basico que son los sockets!
Para poder usar sockets en ruby necesitamos:
Nos responde con un True! Por que? Nose deberia de respondel con nil supongo que es por que encontro el modulo y por eso tira el true! xD
Bueno ya pidiendo socket podemos trabajar con ello y vamos a hacer el server primero:
Server:
tambien
otra forma tambien es
Nos quedaremos con la primera!
Donde listen nos sirve para escuchar un maximo de conexion en este caso seria una.
Y de aqui ya podemos hacer muchas cosas al gusto. Algo simple que nose sirve para el ejemplo seria mandar un mensaje a todo aquel que se conecte y cerrar la conexion.
con serv.accept aceptamos la conexion y con puts mandamos al cliente el mensaje y con close cerramos el socket
Y nuestro codigo final del server quedaria asi:
Ahora vamos con el cliente:
Cliente:
Pedimos socket; recibimos true
Tambien puede ser
O
Donde localhost es el host al que nos vamos a conectar se puede especificar ip o un url y el puerto que en este caso es 1234
Ahora de aqui tambien podemos hacer muchas cosas, para el ejemplo mandaremos se imprime entra en un while y se imprime el mensaje terminando esto se cierra la conexion
Y el codigo final del cliente seria este
Tambien existen otras funciones utiles como
Para obtener informacion del address
Para establecer un timeout a la conexion
Y muchas otras
[Enlace externo eliminado para invitados]
Para poder usar sockets en ruby necesitamos:
Código: Seleccionar todo
require 'socket'
Bueno ya pidiendo socket podemos trabajar con ello y vamos a hacer el server primero:
Server:
Código: Seleccionar todo
serv = TCPSocket.new 1234
Código: Seleccionar todo
serv = TCPSocket.new(1234)
Código: Seleccionar todo
serv = TCPSocket.open(1234)
Código: Seleccionar todo
serv.listen(1)
Y de aqui ya podemos hacer muchas cosas al gusto. Algo simple que nose sirve para el ejemplo seria mandar un mensaje a todo aquel que se conecte y cerrar la conexion.
Código: Seleccionar todo
loop do
client = serv.accept
client.puts "Wellcome to server"
client.close
end
Y nuestro codigo final del server quedaria asi:
Código: Seleccionar todo
require 'socket'
serv = TCPSocket.new 1234
serv.listen(1)
loop do
client = serv.accept
client.puts "Wellcome to server"
client.close
end
Cliente:
Código: Seleccionar todo
require 'socket'
Código: Seleccionar todo
client = TCPSocket.new 'localhost' 1234
Código: Seleccionar todo
client = TCPSocket.new('localhost', 1234)
Código: Seleccionar todo
client = TCPSocket.open('localhost', 1234)
Ahora de aqui tambien podemos hacer muchas cosas, para el ejemplo mandaremos se imprime entra en un while y se imprime el mensaje terminando esto se cierra la conexion
Código: Seleccionar todo
while mensaje = serv.gets
puts mensaje
end
client.close
Código: Seleccionar todo
require 'socket'
client = TCPSocket.new 'localhost' 1234
while mensaje = serv.gets
puts mensaje
end
client.close
Código: Seleccionar todo
Socket.getaddrinfo(host, puerto)
Código: Seleccionar todo
select [sock], nil, nil, timeout
Y muchas otras
[Enlace externo eliminado para invitados]