五十嵐です。

drbを使って、チャット(メッセージ交換?)プログラムを
書いてみたのですが、メソッドが呼ばれたときに、その呼び主を
知りたいと思ったのですが、知ることはできますか?

-- BEGIN chats.rb
require 'drb.rb'
require 'thread'

class ChatServer
   def initialize
      @mutex = Mutex.new
      @members = []
   end

   def add_member(there)
      @mutex.synchronize do
         @members.push(there)
      end
   end

   def distribute(str)
      @mutex.synchronize do
         for m in @members
            m << str
         end
      end
   end
end

if __FILE__ == $0
   here = "druby://#{`hostname`.chomp}:7640"
   puts here
   DRb.start_service(here, ChatServer.new)
   DRb.thread.join
end
-- END

-- BEGIN chatc.rb
require 'drb.rb'

class ChatClient
   def <<(str)
      puts str
   end
end

if __FILE__ == $0
   there = ARGV.shift
   unless there
      $stderr.puts("usage: #{$0} <server_uri>")
      exit 1
   end
   here = "druby://#{`hostname`.chomp}:7950"
   lo = DRbObject.new(ChatClient.new, here)
   DRb.start_service(here, lo)
   ro = DRbObject.new(nil, there)
   ro.add_member(lo)
   while gets
      ro.distribute($_)
   end
end
-- END


-- 
IKARASHI Akira(ikarashi / d3.dion.ne.jp)