• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:HTTPでページを取得。素朴な疑問)

HTTPでページを取得する際の疑問

このQ&Aのポイント
  • HTTPでページを取得する際のデータ受信の仕組み
  • データが途切れた場合の挙動について
  • データが一切送られてこない場合の対処方法

質問者が選んだベストアンサー

  • ベストアンサー
  • lv4u
  • ベストアンサー率27% (1862/6715)
回答No.2

>>「サーバーがダウンして、シャットダウンすら発行されない状態に なった場合」、あるいは、「なかなかデータが来ない場合」を想定し た、タイムアウト処理をしなくても問題ないのか?ということです。 問題あります。しないとまずいです。 >>そういう処理をしたサンプルを見たことがないので、その辺は、 プログラムで特に何もしなくても、下位層で上手くやってくれて いるのでしょうか? 通常は、下層でやってくれますが、そのタイムアウト時間が自分の望む値になっているとは限りません。自由に設定できるようになっていても、実装がそうでないこともあります。なので、ユーザの(作成者の自分も含めて)満足できるようにするには、自分でつくることになると思います。 なお、あまりサンプルを見ることが無いのは同感です。 TCP/IPに関して、きちんとプログラミングをする場合、まずは「UNIXネットワークプログラミング/W.リチャード スティーヴンス著〈Vol.1/2)」を購入されることをお勧めします。ちょっと高価ですが、安物の参考書では、参考になりませんので・・・。

noname#181870
質問者

お礼

レスが遅れて申し訳ありません。 そして、いろいろありがとうございます。 やっぱ、マジィですよねぇ。 それで、少ししらべてみたのですが、どうも方法が2つあるようです。 それは、ararmとselectの二つ。 selectを使う方は、イマイチ理解が浅いので、ararmを使って みたいと思います。

noname#181870
質問者

補足

ararm→alarm

その他の回答 (1)

  • lv4u
  • ベストアンサー率27% (1862/6715)
回答No.1

>>これって、SOCKETのデータが無くなったら「おしまい」ってことです よね。 そうですが、「データがこれでおしまい」が相手から来なければ、繋がっている状態になっているわけです。 >>サーバーがダウンしてデータが来ないとか、 すぐにはソケットは切れません。LANケーブルを引っこ抜いた状態と同様で、クライアントには、「サーバがダウンした」という情報は届きません。 >>或いは、重くてデータが途切れるとかって場合 上記と同様、切れません。 >>そういった場合は、全くデータが来ないか、しっぽ切れで 終了してしまうのでしょうか? すぐには終了しません。このあたりは、なかなかソケットのプログラミングで難しい部分、「深い」部分ですね。プログラミングするとき、状態遷移図とにらめっこする必要も多いです。

noname#181870
質問者

お礼

早々、ご回答いただきましてありがとうございます。 >「データがこれでおしまい」が相手から来なければ、繋がっている状>態になっているわけです。 つまり、シャットダウンの発行を受けないと、読み取るデータが到着 していなくてもループからは抜けないと理解します。 そこで、ここが実は一番知りたい所なのですが、 「サーバーがダウンして、シャットダウンすら発行されない状態に なった場合」、あるいは、「なかなかデータが来ない場合」を想定し た、タイムアウト処理をしなくても問題ないのか?ということです。 そういう処理をしたサンプルを見たことがないので、その辺は、 プログラムで特に何もしなくても、下位層で上手くやってくれて いるのでしょうか? よろしくお願いします。

関連するQ&A