1=begin 2 distributed Ruby --- chat client 3 Copyright (c) 1999-2000 Masatoshi SEKI 4=end 5 6require 'drb/drb' 7 8class ChatClient 9 include DRbUndumped 10 11 def initialize(name) 12 @name = name 13 @key = nil 14 end 15 attr_reader(:name) 16 attr_accessor(:key) 17 18 def message(there, str) 19 raise 'invalid key' unless @key == there 20 puts str 21 end 22end 23 24if __FILE__ == $0 25 begin 26 there = ARGV.shift 27 name = ARGV.shift 28 raise "usage" unless (there and name) 29 rescue 30 $stderr.puts("usage: #{$0} <server_uri> <your_name>") 31 exit 1 32 end 33 DRb.start_service 34 ro = DRbObject.new(nil, there) 35 36 chat = ChatClient.new(name) 37 entry = ro.add_member(chat) 38 while gets 39 entry.say($_) 40 end 41end 42