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 Web サイトの一般的なチュートリアルもご覧ください。

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

最後に考慮すべきことは、C++ を使用している場合、コールバックが非静的メンバー関数でないことを確認する必要があることです (ここlibcurl - ファイルをダウンロードできません を参照してください) 。

これで少なくとも始められるはずです。

于 2012-07-17T07:13:14.307 に答える