Like My Status

webエンジニアが書く備忘録。

dRubyを使ってみた

dRubyとは

  • 分散オブジェクトプログラミングのためのライブラリ
  • Ruby のプロセスから他のRubyプロセスにあるオブジェクトのメソッド を呼びだすことができる
  • 他のマシン上のプロセスにも アクセスできる

Document

Source

受信側


require 'drb/drb'

class Puts
    def initialize(stream = $stdout)
            @stream = stream
    end
    def puts(str)
            @stream.puts(str)
    end
end

uri = ARGV.shift
DRb.start_service(uri, Puts.new)
puts DRb.uri
sleep

送信側


require 'drb/drb'

uri = ARGV.shift
client = DRbObject.new_with_uri(uri)
client.puts('Hi ')

実行

受信側


ruby receive.rb druby://localhost:10000

送信側


ruby post.rb druby://localhost:10000

実行結果

受信側


ruby put.rb druby://localhost:10000
  druby://localhost:10000
  Hi

dRubyを使ってみて

Cとかで実装するよりも簡単に行うことが出来ました