TCPクライアント(エラー処理付き)
前述したTCPクライアント例は、処理の概要を示したかったのでエラー処理がありませんでした。 ここでは、簡単なエラー処理を追加したいと思います。
サンプル
TCPSocket.openを実行中にエラーが起こると例外が発生します。 rubyでの例外を捕捉するにはbegin,rescue,else,ensureを使います。 beginは例外が発生する範囲を開始するためのものです。 rescueの後にエラーが起こったときの処理を書き、else後に例外が発生しなかったときの処理を書きます。 ensureにはエラーの有無には関係なく行われる処理を書きます。 最後にendで例外処理範囲を閉じます。
下記サンプルでは、エラーが発生するとエラーの内容を表示して終了します。 ソケットを使ったデータ送信は、エラーが発生せずにTCPの接続が成功した場合にのみ行われます。
#!/usr/bin/ruby
require "socket"
begin
sock = TCPSocket.open("127.0.0.1", 20000)
rescue
puts "TCPSocket.open failed : #$!\n"
else
sock.write("HELLO")
sock.close
end