Unity游戏开发-客户端Http下载

这篇博客介绍了如何在Unity游戏中利用.Net的HttpWebRequest类实现客户端Http下载功能。内容包括了下载模块的数据结构设计、多线程处理、文件流保存及MD5校验。通过创建下载任务,更新下载状态,以及定义特定的请求参数协议,确保了文件下载的顺利进行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本篇主要分享基于.Net实现一个客户端Http下载模块。

Http下载这块和服务器也有一定的联系,关于服务器Http下载模块的实现后面有时间再贴出来吧,主要是和客户端约定一下HttpPost参数的解析方式。

Http下载这块主要还是基于.Net库里面的HttpWebRequest类去实现的。

这里主要是封装了一些数据结构用于支持下载的显示,封装了多线程的处理避免Http请求造成线程的阻塞,封装了文件流的下载保存和md5校验。

一个分为两个部分:

HttpDownLoad-开启线程,创建下载任务,更新下载状态

HttpDownPack-Http下载任务的数据结构定义

HttpDownPack

public class HttpDownPack
{
    // 网络错误重试次数
    public int tryNum;
    // 服务器http地址
    public string url;
    // post请求参数
    public byte[] param;
    // 下载后本地文件保存路径
    public string localFile;
    // 文件的md5
    public string md5;
    // 请求超时时间
    public int timeOut = 5000;
    // 下载状态
    public HttpDownState state;
    // 当前下载的大小
    public int downSize;
}

public enum HttpDownState
{ 
    Ready = 0,
    DownLoading = 1,
    Complete = 2,
    Md5Failed = 3,
    Error = 4
}

其中param是我们post请求需要构建的参数。

整体的设计师param的前四个字节构成一个int类型,其代表的是我们给服务器推送的协议号来表示我们需要做什么样的业务。

这里将

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值