18.5.5. ストリーム(コルーチンベースのAPI)—Pythonドキュメント
18.5.5。 ストリーム(コルーチンベースのAPI)
ソースコード: :source: `Lib / asyncio / streams.py`
18.5.5.1。 流れ関数
ノート
このモジュールの最上位関数は、便利なラッパーとしてのみ意図されています。 そこには本当に特別なことは何もありません。彼らがあなたの望むことを正確に行わない場合は、自由にコードをコピーしてください。
18.5.5.2。 StreamReader
- class asyncio.StreamReader(limit=_DEFAULT_LIMIT, loop=None)
このクラスはスレッドセーフではありません。
limit 引数のデフォルト値は、2 ** 16(64 KiB)の_DEFAULT_LIMITに設定されています。
- exception()
例外を取得します。
- feed_eof()
EOFを確認します。
- feed_data(data)
内部バッファに data バイトをフィードします。 データを待機している操作はすべて再開されます。
- set_exception(exc)
例外を設定します。
- set_transport(transport)
トランスポートを設定します。
- at_eof()
バッファが空で、 feed_eof()が呼び出された場合は、
True
を返します。
18.5.5.3。 StreamWriter
- class asyncio.StreamWriter(transport, protocol, reader, loop)
トランスポートをラップします。
これにより、 write()、 writelines()、 can_write_eof()、 write_eof()、 get_extra_info()[X122X ]および close()。 フロー制御を待つことができるオプションの Future を返す
drain()
を追加します。 また、Transport
を直接参照するトランスポート属性も追加します。このクラスはスレッドセーフではありません。
- transport
輸送。
- can_write_eof()
トランスポートが write_eof()をサポートしている場合は True を返し、サポートしていない場合は False を返します。 WriteTransport.can_write_eof()を参照してください。
- close()
トランスポートを閉じます。 BaseTransport.close()を参照してください。
- get_extra_info(name, default=None)
オプションのトランスポート情報を返します。 BaseTransport.get_extra_info()を参照してください。
- write(data)
data バイトをトランスポートに書き込みます。 WriteTransport.write()を参照してください。
- writelines(data)
データバイトのリスト(または反復可能なもの)をトランスポートに書き込みます。 WriteTransport.writelines()を参照してください。
- write_eof()
バッファリングされたデータをフラッシュした後、トランスポートの書き込み終了を閉じます。 WriteTransport.write_eof()を参照してください。
18.5.5.4。 StreamReaderProtocol
- class asyncio.StreamReaderProtocol(stream_reader, client_connected_cb=None, loop=None)
Protocol と StreamReader の間で適応する簡単なヘルパークラス。 プロトコルのサブクラス。
stream_reader は StreamReader インスタンス、 client_connected_cb は接続が確立されたときに(stream_reader、stream_writer)で呼び出されるオプションの関数、 loop は使用するイベントループインスタンス。
(これは、 StreamReader 自体を Protocol サブクラスにする代わりのヘルパークラスです。これは、 StreamReader には他の潜在的な用途があり、のユーザーを防ぐためです。 ] StreamReader が誤ってプロトコルの不適切なメソッドを呼び出さないようにします。)
18.5.5.5。 IncompleteReadError
- exception asyncio.IncompleteReadError
不完全な読み取りエラー、 EOFError のサブクラス。
- expected
予想されるバイトの総数( int )。
- partial
ストリームの終わりに達する前にバイト文字列を読み取ります( bytes )。
18.5.5.6。 LimitOverrunError
- exception asyncio.LimitOverrunError
- セパレータを探しているときにバッファ制限に達しました。
- consumed
- 消費されるバイトの総数。
18.5.5.7。 ストリームの例
18.5.5.7.1。 ストリームを使用するTCPエコークライアント
asyncio.open_connection()
関数を使用するTCPエコークライアント:
18.5.5.7.2。 ストリームを使用するTCPエコーサーバー
asyncio.start_server()
機能を使用するTCPエコーサーバー:
18.5.5.7.3。 HTTPヘッダーを取得する
コマンドラインで渡されたURLのHTTPヘッダーをクエリする簡単な例:
使用法:
またはHTTPSの場合:
18.5.5.7.4。 開いているソケットを登録して、ストリームを使用してデータを待機します
ソケットがopen_connection()
関数を使用してデータを受信するまで待機するコルーチン:
も参照してください
プロトコルを使用してデータを待機するために開いているソケットを登録するの例では、AbstractEventLoop.create_connection()
メソッドによって作成された低レベルのプロトコルを使用します。
読み取りイベントのファイル記述子を監視するの例では、低レベルの AbstractEventLoop.add_reader()メソッドを使用してソケットのファイル記述子を登録します。