NaCl和卷曲 - 无法连接到服务器

时间:2016-06-22 08:12:29

标签: c++ curl google-nativeclient

我是NaCl新手,现在我开始遇到一些问题。我试图从C ++代码中将一些数据加载到应用程序的C ++部分,我知道我无法从NaCl访问HDD上的文件。所以,我尝试做的是使用curl库通过来自localhost的http来加载这些文件。

所以我设置了NaCl环境,增加了卷曲 - 一切都很好,然后我遇到了卷曲无法解决主机名的问题,但希望我克服了这个问题,但随后卷发说它可以' t连接到服务器(错误代码7)。我不知道可能是什么问题。

我使用此命令启动chrome:

google-chrome 127.0.0.1:5103/myapp --allow-nacl-socket-api=127.0.0.1 
--no-sandbox --load-extension="/home/user/Desktop/nacl_sdk/pepper_49/getting_started/web/" 
--enable-nacl --user-data-dir="/home/user/Desktop/chrome-dir/"

尝试从localhost加载数据的代码如下:

static size_t data_write(char* buf, size_t size, size_t nmemb, void* userp) {
  printf("start data_write\n");
  if (userp) {
    std::stringstream& data = *static_cast<std::stringstream*>(userp);
    std::streamsize len = size * nmemb;
    for (int i = 0; i < len; ++i) {
      data << buf[i];
    }
    return len;
  }
  printf("end data_write\n");
  return 0;
}

CURLcode curl_read(const std::string& url, std::stringstream& os, long timeout = 300) {
  CURLcode code(CURLE_FAILED_INIT);
  CURL* curl = curl_easy_init();

  printf("CURL_READ\n");

  if (curl) {
    printf("curl is not null\n");
    if (CURLE_OK == (code = curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION,
                                             &data_write)) &&
        CURLE_OK == (code = curl_easy_setopt(curl, CURLOPT_NOPROGRESS, 1L)) &&
        CURLE_OK ==
            (code = curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L)) &&
        CURLE_OK == (code = curl_easy_setopt(curl, CURLOPT_FILE, &os)) &&
        CURLE_OK == (code = curl_easy_setopt(curl, CURLOPT_TIMEOUT, timeout)) &&
        CURLE_OK == (code = curl_easy_setopt(curl, CURLOPT_URL, url.c_str()))) {
      printf("START curl perform\n");
      code = curl_easy_perform(curl);
      printf("CURL ERROR (%d) = %s\n", code, curl_easy_strerror(code));
      printf("END curl perform\n");
    }
    curl_easy_cleanup(curl);
  }

  return code;
}

控制台的输出是:

Init curl
Loading data from: http://127.0.0.1/assets/model.obj
CURL_READ
curl is not null
START curl perform
CURL ERROR (7) = Couldn't connect to server
END curl perform

可能是什么问题?甚至可以在NaCl中使用卷曲吗?

0 个答案:

没有答案