0

学習のためだけにCで小さな SocketWrapper を作成しましたが、動作します。GET-Request を送信し、バッファ [1024] を受信して​​います。しかし、読みたいコンテンツは 1024 よりも長いことがよくあります。長さを判断してデータ全体を受け取るにはどうすればよいですか?

#include <stdio.h>
#include <stdbool.h>

#include "lib/output.h"
#include "lib/network.h"

int main(int argc, char *argv[]) {
debug_verbose = true;

struct IPv4_CLIENT client;
client = socketIPv4("google.com", 80);

if(socketIPv4_connect(client) < 0) {
    error("Connect failed!");
    return -1;
}   

char send_buffer[256];
bzero(send_buffer, 256);

printline("Send: ");
fgets(send_buffer, 255, stdin);

socketIPv4_write(client, send_buffer);

char receive_buffer[1024];
socketIPv4_read(client, receive_buffer, 1024);
hexdump(receive_buffer, 1024);

socketIPv4_close(client);

return 0;
}
4

2 に答える 2