# list0803.rb
# サーバからクライアントへメッセージを出す。
# スレッド版

require 'socket'

ss = TCPServer.open(3456)
loop do
  puts "waiting"
  cs = ss.accept
  Thread::fork(cs) {
    puts "accepted"
    while !cs.eof? do
      msg = cs.gets.chomp  # cs の入力を msg とする
      puts msg             # cs の入力を表示する。
      cs.puts msg.reverse  # cs の入力をさかさ文字列にして返す
    end
    cs.close               # 担当者 cs を閉じる
    puts "closed"
  }
end