dRuby サンプル
dRuby はネットワーク上で Ruby のオブジェクトを遠隔操作するものです。
ここからコピペしてやってみる。ただし元サイトが右クリックでコピペできないようにしているので、コードをそのまま写しておきます。Linux Mint 18.2, Ruby 2.3.3 で確認。
druby_server.rb
require 'drb/drb' # 通信を待ち受ける URI URI = "druby://localhost:8787" class DrubyServer def get_cur_time cur_time = Time.now.strftime("%Y年%m月%d日 %H時%M分%S秒") msg = "ただいま #{cur_time} です。" puts msg return msg end end # リクエストを受け付けるオブジェクト obj = DrubyServer.new # サーバの起動 DRb.start_service(URI, obj, safe_level: 1) # DRb スレッド終了の待ち受け DRb.thread.join
druby_client.rb
require 'drb/drb' # 接続先 URI URI = "druby://localhost:8787" # リモートオブジェクトの取得 obj = DRbObject.new_with_uri(URI) # リモートメソッドの呼び出し puts obj.get_cur_time
まず druby_server.rb を端末で実行。で、別の端末で druby_client.rb を実行するたび、サーバの方から現在時刻(正確には obj オブジェクト)が送られてくる。そしてメソッドを実行してそれを表示する。
$ ruby druby_client.rb ただいま 2017年11月27日 18時04分02秒 です。 $ ruby druby_client.rb ただいま 2017年11月27日 18時04分07秒 です。
同時にサーバ側でも同じ現在時刻が表示されている。
$ ruby druby_server.rb ただいま 2017年11月27日 18時04分02秒 です。 ただいま 2017年11月27日 18時04分07秒 です。
インターネットにはこのまま出てはいけないそうです。