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