SocketReadyQ

SocketReadyQ[socket]

指定されたソケットから即時読込み可能なデータがあるかどうかを判定する.

SocketReadyQ[socket,t]

t 秒まで待ってデータが読込み可能になるかどうかを判断する.

詳細

  • SocketReadyQ[]内のソケットはSocketObject[]を使って指定される.
  • SocketReadyQは,Read等とは異なり,即時に返されるが,データが使用可能になるまで待つことをブロックはしない.
  • 数値のときは,t の単位は秒であると解釈される.時間Quantityも使うことができる.

例題

すべて開くすべて閉じる

  (3)

接続当初は,ほとんどのWebサイトはリクエストを受けるまでデータを送信しない:

ソケットにリクエストを書き,サーバの応答があるまで最高で10秒待つ:

ソケットを閉じる:

サーバソケットを開き,これにクライアントのソケットを接続する:

当初は,どちらもデータが取れない:

クライアントにメッセージを送ると,ソケットの準備が整って読み出せるようになる:

メッセージを読んでしまうと,読めるデータがなくなる:

ソケットを閉じる:

Quantityを第2引数として使って応答を待つ:

ソケットを閉じる:

おもしろい例題  (1)

pingにかかる時間の簡単な関数を作り,HTTP応答が戻ってくるまでの時間を測る:

ホストにpingして応答までの時間を見る:

同じページを複数回リクエストする:

Wolfram Research (2017), SocketReadyQ, Wolfram言語関数, https://reference.wolfram.com/language/ref/SocketReadyQ.html.

テキスト

Wolfram Research (2017), SocketReadyQ, Wolfram言語関数, https://reference.wolfram.com/language/ref/SocketReadyQ.html.

CMS

Wolfram Language. 2017. "SocketReadyQ." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/SocketReadyQ.html.

APA

Wolfram Language. (2017). SocketReadyQ. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/SocketReadyQ.html

BibTeX

@misc{reference.wolfram_2024_socketreadyq, author="Wolfram Research", title="{SocketReadyQ}", year="2017", howpublished="\url{https://reference.wolfram.com/language/ref/SocketReadyQ.html}", note=[Accessed: 22-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_socketreadyq, organization={Wolfram Research}, title={SocketReadyQ}, year={2017}, url={https://reference.wolfram.com/language/ref/SocketReadyQ.html}, note=[Accessed: 22-November-2024 ]}