GetsSafe

GetsSafe は gets_safe メソッドを定義するモジュールです。 gets_safe メソッドは、gets にタイムアウト機能と1行のバイト数制限機能をつけたものです。

必要なもの

ライセンス

このプログラムは Ruby ライセンスに従います。

使用例

以下は 9999 ポートで接続を待ち受け、クライアントから入力された行を出力します。 接続後 100秒以内にデータがなかったり、入力された行が 1024 バイト以上の場合はエラーになります。

require "socket"
require "getssafe"

sock = TCPServer.new(9999)
s = sock.accept
class <<s
  include GetsSafe
end
p s.gets_safe(nil, 100, 1024)

メソッド

gets_safe(rs=nil, timeout=nil, maxlength=nil)
self から1行読み込んで返します。 rs は IO#gets と同じです。rs に nil を指定した場合は $/ が使用されます。 timeout はタイムアウトまでの秒数です。timeout を過ぎても入力がない場合は Errno::ETIMEDOUT 例外を生成します。 maxlength は1行の最大バイト数です。1行が maxlength 以上になる場合は、Errno::E2BIG 例外を生成します。

履歴

0.1 2004/10/26

とみたまさひろ

Last modified: Tue Oct 26 23:05:17 JST 2004