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 を置き換えることもできます。
class <<s include GetsSafe alias gets gets_safe end s.timeout = 100 s.gets # 100秒でタイムアウト
Last modified: Thu Dec 2 15:06:35 JST 2004