1

我有一种情况,我在服务器(Windows 机器)上的程序输出一些字符串。我需要使用 curl 通过 HTTP 将这些字符串从服务器发送到客户端。发送后,我将在客户端以字符串形式接收数据,对其进行解码并执行后续操作。我已经C Sockets使用 berkely API 实现了这个功能,因为我对此很熟悉。但由于某种原因,我不允许使用自己的程序。我四处寻找,似乎 CURL 可以成为我的解决方案。但是,我对 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 开发一个程序,每当服务器通过字符串发送时,它应该接收并解码它。任何指向与特定问题相关的教程的指针都将受到高度赞赏。或者,如果有人已经尝试过,我将非常感谢这里的任何帮助。谢谢。

4

1 回答 1

1

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

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

还可以查看 curl 网站上的通用教程:

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

最后要考虑的一件事,如果使用 C++,你需要确保你的回调不是非静态成员函数(见这里libcurl - 无法下载文件

这至少应该让你开始。

于 2012-07-17T07:13:14.307 回答