cocos2d-x使用curl获取文件大小

在手游开发中,为了动态下载游戏资源和更新提示,本文介绍了如何利用cocos2d-x集成的curl库实现获取远程文件大小的功能。通过设置HTTP请求并解析响应数据,避免了自定义socket实现的复杂性。代码实现中需要注意curl头文件的路径配置,并提供了相应的类封装。
摘要由CSDN通过智能技术生成

由于手游项目中部分游戏房间游戏资源是动态下载的,还有安卓APK包提示版本更新在线安装时也需要先获取到安装包大小,提示玩家本次更新所耗流量,故用curl写了个获取文件大小的功能,后面还会用curl实现热更新功能;

首先说下原理,由于http底层其实也是由socket实现的,默认端口通常是80端口,数据的传输则根据http相关协议进行编写传输,故自己用socket写一个http请求并做好相应数据解析也是可以实现的,但再造个轮子要考虑的比较多,不在此文讨论之列,且CURL是一个很成熟通用的库,所以此处使用curl来实现获取文件大小;

#include <curl/curl.h>
#include <curl/easy.h>
#include <thread>

#define LOW_SPEED_LIMIT 1L
#define LOW_SPEED_TIME	5L

size_t save_header(void *ptr, size_t size, size_t nmemb, void *data)
{
    return (size_t)(size * nmemb);
}

void URLLoader::loadURLHead(const char* url)
{
    auto curl = curl_easy_init();
    curl_easy_setopt(curl, CURLOPT_URL, url);
    curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST,"GET");    //使用CURLOPT_CUSTOMREQUEST
//    curl_easy_setopt(handle, CURLOPT_HEADER, 1); //部分服务器可能不支持Header响应
    curl_easy_setopt(curl, CURLOPT_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值