将数据从c ++程序发送到php web服务器

时间:2013-02-14 16:57:59

标签: php c++ linux bash sockets

我在Web服务器上运行了一个php脚本,以便对数据库执行一些插入操作。该脚本接收一些加密数据,对其进行解密并将其推入数据库。

负责发送此数据是一个C ++程序(在Linux中运行),该程序将每5秒发送一个不超过40个字符的消息。

我正在考虑调用一些打开URL(http://myserver.com/myscript.php?message=adfafdadfasfasdfasdf)的bash脚本,并通过参数接收消息。

我不想要一个复杂的解决方案,因为我只需要打开URL,它就是一个单向的沟通渠道。

这样做的一些简单的解决方案?

谢谢!

2 个答案:

答案 0 :(得分:3)

更强大的解决方案是使用libcurl,这可以让您open a http connection in a few lines。这是链接中自包含的示例:

#include <stdio.h>
#include <curl/curl.h>

int main(void)
{
  CURL *curl;
  CURLcode res;

  curl = curl_easy_init();
  if(curl) {
    curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
    /* example.com is redirected, so we tell libcurl to follow redirection */ 
    curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);

    /* Perform the request, res will get the return code */ 
    res = curl_easy_perform(curl);
    /* Check for errors */ 
    if(res != CURLE_OK)
      fprintf(stderr, "curl_easy_perform() failed: %s\n",
              curl_easy_strerror(res));

    /* always cleanup */ 
    curl_easy_cleanup(curl);
  }
  return 0;
}

答案 1 :(得分:1)

由于您不需要解析HTTP查询的结果,因此您只需使用system来调用wget之类的标准实用程序。

int retVal = system("wget -O- -q http://whatever.com/foo/bar");
// handle return value as per the system man page

这与您的想法基本相同,保存脚本间接。