##
11.13.1 Telnet オブジェクト

`Telnet` インスタンスは以下のメソッドを持っています:

`read_until`( | expected[, timeout])

  expectedで指定された文字列を読み込むか、timeoutで指定された 秒数が経過するまで読み込みます。

  与えられた文字列に一致する部分が見つからなかった場合、読み込む ことができたもの全てを返します。これは空の文字列になる可能性が あります。接続が閉じられ、転送処理済みのデータが得られない場合 には `EOFError` が送出されます。

`read_all`( | )

  EOFに到達するまでの全てのデータを読み込みます; 接続が 閉じられるまでブロックします。

`read_some`( | )

  EOF に到達しない限り、少なくとも 1 バイトの転送処理済みデータ を読み込みます。EOF に到達した場合は `''` を返します。 すぐに読み出せるデータが存在しない場合にはブロックします。

`read_very_eager`( | )

  I/O によるブロックを起こさずに読み出せる全てのデータを読み込み ます (eager モード)。

  接続が閉じられており、転送処理済みのデータとして読み出せるもの がない場合には `EOFError` が送出されます。それ以外の 場合で、単に読み出せるデータがない場合には `''` を返します。 IAC シーケンス操作中でないかぎりブロックしません。

`read_eager`( | )

  現在すぐに読み出せるデータを読み出します。

  接続が閉じられており、転送処理済みのデータとして読み出せるものが ない場合には `EOFError` が送出されます。それ以外の 場合で、単に読み出せるデータがない場合には `''` を返します。 IAC シーケンス操作中でないかぎりブロックしません。

`read_lazy`( | )

  すでにキューに入っているデータを処理して返します (lazy モード)。

  接続が閉じられており、読み出せるデータがない場合には `EOFError` を送出します。それ以外の場合で、転送処理済みの データで読み出せるものがない場合には `''` を返します。 IAC シーケンス操作中でないかぎりブロックしません。

`read_very_lazy`( | )

  すでに処理済みキューに入っているデータを処理して返します (very lazy モード)。

  接続が閉じられており、読み出せるデータがない場合には `EOFError` を送出します。それ以外の場合で、転送処理済みの データで読み出せるものがない場合には `''` を返します。 このメソッドは決してブロックしません。

`read_sb_data`( | )

  SB/SE ペア (サブオプション開始／終了) の間に収集されたデータを返します。 `SE` コマンドによって起動されたコールバック関数はこれらのデータ にアクセスしなければなりません。

  このメソッドはけっしてブロックしません。 バージョン2.3 以降で新規追加された 仕様です。

`open`( | host[, port])

  サーバホストに接続します。 第二引数はオプションで、ポート番号を指定します。 標準の値は通常の Telnet ポート番号 (23) です。

  すでに接続しているインスタンスで再接続を試みてはいけません。

`msg`( | msg[, *args])

  デバッグレベルが `>` 0 のとき、デバッグ用のメッセージを 出力します。追加の引数が存在する場合、標準の 文字列書式化演算子 `%` を使って msg 中の 書式指定子に代入されます。

`set_debuglevel`( | debuglevel)

  デバッグレベルを設定します。debuglevel が大きくなるほど、 (`sys.stdout` に) デバッグメッセージがたくさん出力されます。

`close`( | )

  接続を閉じます。

`get_socket`( | )

  内部的に使われているソケットオブジェクトです。

`fileno`( | )

  内部的に使われているソケットオブジェクトのファイル記述子です。

`write`( | buffer)

  ソケットに文字列を書き込みます。このとき IAC 文字については 2 度送信します。接続がブロックした場合、書き込みがブロックする 可能性があります。接続が閉じられた場合、`socket.error` が送出されるかもしれません。

`interact`( | )

  非常に低機能の telnet クライアントをエミュレートする対話 関数です。

`mt_interact`( | )

  `interact()` のマルチスレッド版です。

`expect`( | list[, timeout])

  正規表現のリストのうちどれか一つにマッチするまでデータを読みます。

  第一引数は正規表現のリストです。コンパイルされたもの (`re.RegexObject` のインスタンス) でも、コンパイルされて いないもの (文字列) でもかまいません。オプションの第二引数は タイムアウトで、単位は秒です; 標準の値は無期限に設定されています。

  3 つの要素からなるタプル: 最初にマッチした正規表現のインデクス; 返されたマッチオブジェクト; マッチ部分を含む、マッチするまでに読み込まれたテキストデータ、 を返します。

  ファイル終了子が見つかり、かつ何もテキストデータが読み込まれ なかった場合、`EOFError` が送出されます。そうでない 場合で何もマッチしなかった場合には `(-1, None, text)` が返されます。ここで text はこれまで受信したテキストデータ です (タイムアウトが発生した場合には空の文字列になる場合もあります)。

  正規表現の末尾が (`.*` のような) 貪欲マッチングになっている 場合や、入力に対して 1 つ以上の正規表現がマッチする場合には、 その結果は決定不能で、I/O のタイミングに依存するでしょう。

`set_option_negotiation_callback`( | callback)

  telnet オプションが入力フローから読み込まれるたびに、 callback が (設定されていれば) 以下の引数形式: callback(telnet socket, command (DO/DONT/WILL/WONT), option) で呼び出されます。その後 telnet オプションに対しては telnetlib は何も行いません。