C で Web サーバーを実装しようとしています。send コマンドをループで使用して、リクエストの応答を送信しています。
buf_len = 1;
while (buf_len > 0)
{
buf_len = read(fh, out_buf, BUF_SIZE);
if (buf_len > 0)
{
send(client_s, out_buf, buf_len, 0);
}
}
by の最後の文字を char out_buf[BUF_SIZE]
withで終了する必要があり'\0'
ます。また、同じコードでpngファイルを送信しようとすると、画像全体を受信することもあれば、半分だけを受信することもあります。ページを更新すると完全に読み込まれます。