青山です。

In message <199805141438.XAA25269 / aoba.wt.inac.co.jp>, TAKAHASHI Masayoshi writ
es:
>
>……と思ったら、新しいruby1.1に入っていたtelnet.rbで使って
>ますね。ちょっと参考にしてみます。

あ、まだタイムアウト処理は入っていません。ちょっと止まっていたので出来
上がってはいませんが、こんな感じだと思います。

buf = ''
until(not select([@sock], nil, nil, waittime) and prompt === line)
  if not select([@sock], nil, nil, timeout - waittime)
    STDOUT << "\nTimed out.\n"
    @sock.close
  else
    begin
      buf += @sock.sysread(1024 * 1024)
    rescue
      STDOUT << "\nConnection closed by foreign host.\n"
      @sock.close
    end
  end
  return nil if @sock.closed?
end

http ではプロンプト等は無いので違う形になると思いますが、waittime がプ
ロンプトの待ち時間、timeout が本当の?タイムアウト時間です。

ソケットのオープンに関しては ruby-list:7816 に紹介されています。
これ、需要はあると思いますが、標準でどこかに入るような事は無いのでしょ
うか?


青山 和光 Wakou Aoyama <wakou / fsinet.or.jp>