我有一种情况,我的服务器(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开发一个程序,每当服务器发送一个字符串时,它应该接收它并解码它。任何指向与特定问题相关的教程的指针都将受到高度赞赏。或者,如果有人已经尝试过这个,我将非常感谢这里的任何帮助。 感谢。
答案 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)
这应该至少让你开始。