Golang 迅雷下载器SDK

前端之家收集整理的这篇文章主要介绍了Golang 迅雷下载器SDK前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

迅雷下载引擎SDK Go语言版

之所以做Golang版本的,是因为在做了Delphi版本后的一个突然想法,想做个内部的远程下载,登录后台添加下载任务。

使用方法

// XLSdkTest project main.go@H_404_9@
// api说明见:http://open.xunlei.com/wiki/api_doc.html#1@H_404_9@
package@H_404_9@ main

import@H_404_9@ (
    "fmt"@H_404_9@
    "os"@H_404_9@

    "time"@H_404_9@
    "github.com/ying32/xldl"@H_404_9@

    "os/exec"@H_404_9@
    "path/filepath"@H_404_9@
)

var@H_404_9@ (
    exitLoop bool@H_404_9@
)

func@H_404_9@ main() {

    file,_ := exec.LookPath(os.Args[0@H_404_9@])
    path := filepath.Dir(file)

    println@H_404_9@(path)

    if@H_404_9@ !xldl.InitXLEngine() {
        fmt.Println("初始引擎失败!"@H_404_9@)
        return@H_404_9@
    }
    defer@H_404_9@ xldl.UnInitXLEngine()
    dloader := xldl.NewXLDownloader(path)
    task := dloader.AddTask("http://sw.bos.baidu.com/sw-search-sp/software/19de58890ffb8/QQ_8.6.18804.0_setup.exe"@H_404_9@,"QQ_8.6.18804.0_setup.exe"@H_404_9@)
    fmt.Println("任务启动:"@H_404_9@,task.Start())

    go@H_404_9@ func@H_404_9@() {
        var@H_404_9@ exit string@H_404_9@
        for@H_404_9@ {
            fmt.Scan(&exit)
            if@H_404_9@ exit == "exit"@H_404_9@ {
                exitLoop = true@H_404_9@
                break@H_404_9@
            }
        }
    }()

    for@H_404_9@ !exitLoop {
        info,ret := task.Info()
        if@H_404_9@ ret {
            fmt.Printf("TotalSize=%d,Percent=%f,Speed=%d\n"@H_404_9@,info.TotalSize,info.Percent,info.Speed)
        }
        time.Sleep(time.Millisecond * 500@H_404_9@)
    }
    task.Stop()
    task.Delete()
}

查看源码

原文链接:https://www.f2er.com/go/189372.html

猜你在找的Go相关文章