我希望能够向我的网站发出我的 c++ 应用程序当前正在运行的信号。到目前为止,我所做的是使用 libcurl 使用一些获取参数来联系我网站上的 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 秒加载一次,并且运行良好。
但是,在一定时间后,网站停止接受请求。http://www.downforeveryoneorjustme.com/说该网站仍然在线,但我得到Oops! Google Chrome could not connect
了,并且 curl 应用程序只是吐出**ERROR: Failed connect to [site-url]:80; No error [Error Code: 7]
一段时间,直到网站决定再次开始允许请求。
这是我使用的虚拟主机的问题吗?(000webhost),我是否只需要升级到具有更多带宽的更好的虚拟主机?
还是我以错误的方式解决这个问题?有没有更好的方法从 C++ 应用程序联系我的网站?
任何帮助将不胜感激。
谢谢!