通过curl通过http发送和接收字符串

时间:2012-07-17 06:36:47

标签: c++ c http curl client-server

我有一种情况,我的服务器(Windows机器)上的程序输出一些字符串。我需要使用curl通过HTTP将这些字符串从服务器发送到客户端。一旦发送,我将在客户端接收数据作为字符串,解码并执行后续操作。 我已经使用berkely API使用C Sockets实现了此功能,因为我对此很熟悉。但出于某种原因,我不允许使用自己的程序。 我四处寻找,似乎CURL可以成为我的解决方案。但是我对卷曲很新,似乎无法弄清楚如何实现这个功能。在客户端,我发现这有用可能是:

#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");

    /* 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;
}

据我所知,你必须使用回写功能来接收数据? 同样在客户端,我需要使用curl开发一个程序,每当服务器发送一个字符串时,它应该接收它并解码它。任何指向与特定问题相关的教程的指针都将受到高度赞赏。或者,如果有人已经尝试过这个,我将非常感谢这里的任何帮助。 感谢。

1 个答案:

答案 0 :(得分:1)

从他们的网站上看一下这个示例代码。它详细说明了如何将响应数据写入内存区域而不是文件:

http://curl.haxx.se/libcurl/c/getinmemory.html

另请参阅curl网站上的通用教程:

http://curl.haxx.se/libcurl/c/libcurl-tutorial.html

最后要考虑的一点是,如果使用C ++,您需要确保您的回调不是非静态成员函数(请参阅此处libcurl - unable to download a file

这应该至少让你开始。