Início > Ruby > Sockets em Ruby

Sockets em Ruby

Redes de ComputadoresHá um tempo atrás eu escrevi um post sobre a utilização de Sockets em C#. Pois bem, agora vou voltar ao assunto mostrando como fazer isso usando a linguagem Ruby.

Pra quem não sabe o que é Ruby, aqui está uma definição tirada do site oficial:

“O Ruby é uma linguagem com um equilíbrio cuidado. O seu criador, Yukihiro “matz” Matsumoto, uniu partes das suas linguagens favoritas (Perl, Smalltalk, Eiffel, Ada, e Lisp) para formar uma nova linguagem que equilibra a programação funcional com a programação imperativa.”

No site você pode encontrar um tutorial bem interessante chamado Ruby em Vinte Minutos.

Para a plataforma .NET, temos o IronRuby que é muito legal! Entretanto, nesse exemplo irei utilizar o Ruby “simples”. Falarei mais do IronRuby em outro post.

Bem, vamos começar logo com isso!

Primeiro vamos criar o Cliente. Essa classe vai criar um Socket que utiliza o protocolo TCP. Veja como é simples:

# file TCPClient.rb
require 'socket'

port = 9090
hostname = 'localhost'

serverSocket = TCPSocket.open(hostname, port)

#Envia mensagem para o Servidor
serverSocket.puts "Hello, Server!"

#Recebe mensagem do servidor
while message = serverSocket.gets
   puts message.chop
end

serverSocket.close

Agora, criaremos o Servidor:


# file MultiClientServer.rb
require 'socket'

port = 9090
server =  TCPServer.open(port)

loop{
  Thread.start(server.accept) do |client|
    #Recebe a mensagem do Servidor
    receivedMessage = client.gets
    puts receivedMessage

    #Envia mensagem de confirmação para o Cliente
    client.puts "Your message was received: #{receivedMessage}"

    client.close
  end
}

Esse é um exemplo bem simples, mas serve para mostrar um pouco da linguagem e a facilidade de se utilizar Sockets com ela.

Anúncios
Categorias:Ruby
  1. Nenhum comentário ainda.
  1. No trackbacks yet.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: