![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
MacOSX、C言語でsocket(),writeなどを使ってサーバにリクエストを送り
レスポンスを標準出力しようとしています。
とりあえずレスポンスをbuf[BUFSIZ]にreadさせようとしているのですが、
レスポンスの内容のサイズがBUFSIZ以上だった場合、繰り返しreadさせる
必要があります。
なので(かなり簡潔に書きますが)
while(1)
if(buf[i]==EOF){break;}
n=read(socket,buf,sizeof(buf)-1);
みたいなことを考えました。がこれだとループが止まってくれません。
延々と読み込んでは表示してくれます。。。
たぶんHTTPレスポンスの終端がEOFだと思ったのが違うのだと思います。
HTTPレスポンスの終端というのはどう判断したらよいのでしょうか。
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
EOFは付加されないと思ったのですが、「延々と読み込んでは表示」という現象は、何か同じ文字列の繰り返し または 文字化けのような期待していないものでしょうか?
> n=read(socket,buf,sizeof(buf)-1);
readの戻り値nが正数の間はデータがありますのでループ、という判断をしては如何でしょうか?
do {
n = read(...);
} while (n>0)
連続でリクエストを発行するプログラムというのでしたら、どのようなリクエストをされたか分かりませんが、逐一接続を完了したいという点との矛盾が生じて、Connection: Keep-Alive を指定しているなんて事はないでしょうか?
的外れな回答でしたら、すみません。
No.1
- 回答日時:
socketでの送受信にはsend( ), recv( )関数を使われたほうが
while (recv(socket, buf, BUFSIZ, 0))
{
/*処理*/
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- 片思い・告白 気になってる人とLINEしてて、実は気になってるんだよねと私から言った途端言うまではレスポンス良かっ 2 2023/02/14 21:45
- その他(社会・学校・職場) ・メールや電話のレスポンスが遅い人→仕事ができない人が多い ・クレームを言う人→一見めんどくさいが、 5 2023/04/01 03:05
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- C言語・C++・C# #include <stdio.h>int main(void) { int buf[100] = 6 2022/11/01 22:45
- Visual Basic(VBA) 空白のセルを変更しようとした時(アクティブセル)に インプットボックスを5回出す インプットボックス 1 2023/03/14 11:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
do-while文が禁止される理由
-
ループを途中で抜けたいのですが。
-
入力した文字列から母音だけを...
-
入力した数値を倍々するプログラム
-
VBScriptでSQLに接続し、CSV出...
-
Cプログラムが終了しない
-
C言語forループが完結した場合...
-
For文の終了値を関数にしても問...
-
ループの特定入力終了
-
エクセルでC言語のfor文と同じ...
-
エクセルVBAで Do While (1)って?
-
if文の中にfor文なのか、for文...
-
こちらのプログラム、もう少し...
-
if文を使わずに奇数・偶数を判断
-
フラッシュ暗算
-
break文でループを一気に抜ける...
-
ゲームオーバーのプログラム
-
Enterキーを押されたら次の処理...
-
C言語での引数の省略方法
-
2÷3などの余りについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
break文でループを一気に抜ける...
-
ループを途中で抜けたいのですが。
-
入力した文字列から母音だけを...
-
do-while文が禁止される理由
-
入力した数値を倍々するプログラム
-
C言語forループが完結した場合...
-
if文の中にfor文なのか、for文...
-
プログラミングC言語についての...
-
エクセルVBAで Do While (1)って?
-
For文の終了値を関数にしても問...
-
エクセルでC言語のfor文と同じ...
-
Delphiで・・・
-
ループの特定入力終了
-
UWSCにてある一定の動作を無限...
-
C言語、自己参照構造体のプログ...
-
C言語 数字を削除する関数
-
Cプログラムが終了しない
-
Excel VBAで年度をまたぐ期間の...
-
プログラムで関数は使わない方...
-
VBScriptでSQLに接続し、CSV出...
おすすめ情報