C++ アプリケーションが現在実行中であることを Web サイトに通知できるようにしたいと考えています。これまでに行ったことは、libcurl を使用して、いくつかの get パラメーターを使用して Web サイトの PHP ファイルにアクセスすることです。
これは C++ コードです。
curl_global_init(CURL_GLOBAL_ALL);
CURL * handle = curl_easy_init();
CURLcode result;
std::string url, contents;
std::cin >> url;
curl_easy_setopt(handle, CURLOPT_URL, url);
curl_easy_setopt(handle, CURLOPT_ERRORBUFFER, &errorBuf[0]);
curl_easy_setopt(handle, CURLOPT_WRITEFUNCTION, writefunc);
curl_easy_setopt(handle, CURLOPT_WRITEDATA, &contents);
while(true)
{
time_t startOfLoop = time(0);
//Ping page
result = curl_easy_perform(handle);
if(result == 0)
std::cout << "[" << time(0) << "]: Pinged \"" << url << "\" ok!\r\n";
else
{
std::cout << "[" << time(0) << "]: Pinged \"" << url << "\" **ERROR: " << errorBuf << " [Error Code: " << result << "]\r\n";
}
//Pause until 5 seconds has passed
while(difftime(time(0), startOfLoop) < 5) {}
}
curl_easy_cleanup(handle);
次に、PHP ファイルは MySQLi データベースに書き込み、プログラムが ping を実行したことを通知します。このページはアプリケーションで 5 秒ごとに 1 回読み込まれ、完全に機能しました。
ただし、一定の時間が経過すると、Web サイトはリクエストの受け入れを停止します。http://www.downforeveryoneorjustme.com/は、サイトがまだオンラインであると言いますが、私は取得し、ウェブサイトがリクエストの許可を再開することを決定するまで、curl アプリケーションは一定期間Oops! Google Chrome could not connect
吐き出します。**ERROR: Failed connect to [site-url]:80; No error [Error Code: 7]
これは私が使用しているウェブホストの問題ですか? (000webhost)、帯域幅の広い、より優れた Web ホストにアップグレードする必要がありますか?
それとも、これについて間違った方法で行っていますか? C++ アプリケーションから自分のサイトにアクセスするためのより良い方法はありますか?
どんな助けでも大歓迎です。
ありがとう!