C++ で単純な Web サーバーを実装しようとしています。そのために、リクエストに応じて、Web サーバーはサーバーからデータをフェッチします。そのために私は使用しています
int main()
{
std::ifstream file("/home/chaitanya/cpp/net/hello");
int length;
char *buffer;
if(file.is_open())
{
std::cout << "File is open\n";
file.seekg(0, std::ios::end);
length = file.tellg();
file.seekg(0, std::ios::beg);
buffer = new char[length];
file.read(buffer, length);
file.close();
}
printf("Data:\n\n%s\n", buffer);
delete[] buffer;
return 0;
}
これは、小さなファイルに対しては正常に機能します。サイズに関係なく、ソケットを介してファイルデータ全体を送信しています。それはより良いアプローチですか?
たとえば、ファイル サイズが巨大な場合は? 一度に特定のデータのチャンクを送信する方が良いと思います。
どのアプローチが良いか(または)Webサーバーで使用される他のより優れた/高速なアプローチかについて提案できますか?
前もって感謝します。:)