RubyでTCPテストサーバー

昨日のエントリでCで記述したテストサーバー(TCPテスト - octech)と同等のものをRubyでも作ってみた。(それに伴い昨日のRuby TCP クライアントも少々修正)
TCPサーバーには、TCPSocketクラスではなく、TCPServerクラスを使うようです。
プログラミング言語 Ruby リファレンスマニュアル
ということで、コード。↓

require 'socket'

loop do
    print 'ポート番号を入力してください > '
    port = gets.to_i
    
    if port <= 0 then
        print "# サーバーを終了します.\n"
        break;
    end

    begin
        serv = TCPServer.open( port )
        print "# ポート:#{port} で接続を待っています.\n"
        
        s = serv.accept
        print "# クライアントが接続[#{s}]\n"

        while s.gets
            recv_mesg = $_.chomp
            p recv_mesg
            if recv_mesg[0] == '.'
                break
            end
        end

        print "# クライアントが切断しました.\n"
        s.close

        serv.close
    rescue
        STDERR.puts "Warning: #$!"
        print "error!\n"
    end
end