私は自分の HTTP fetcher ソケットをコーディングしています。私は MVC++ と winsocket2.h で C++ を使用しています。ソケットをプログラムして、必要な Web サイトのサーバーに接続し、HTTP GET 要求を送信することができました。
問題は、キープアライブ接続で HTTP GET 要求を送信した後、recv 関数を呼び出すことです。Web サイトを取得した後を除いて、問題なく動作し、サーバーまたは接続からのタイムアウトのヒントを待ち続けます。閉じる!!
これは、サーバーのキープアライブ タイムアウトに応じて数秒かかるため、キープアライブ HTTP 設定の恩恵を受けられません。
Web サイトを取得した後に recv 関数を停止するように指示し、コマンドを返して、別のハンドシェイク体制を回避しながら別の HTTP 要求を送信できるようにするにはどうすればよいでしょうか。
ノンブロッキング ソケットを使用すると、より高速に動作しますが、停止するタイミングがわかりません。str.rfind("",-1,7) を設定して、データの取得を停止します。ただし、あまり効率的ではありません。
誰かがそれを行う方法を知っていますか、または接続が維持されているときにHTTPサーバーによって送信される最後の文字は何ですか?それで、停止の決定として使用できます.
ベスト、
萌え