迅雷下载引擎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()
}