import 'dart:io';
import 'dart:convert';
import 'package:path/path.dart';
import 'package:web_socket_channel/io.dart'; //https://dldir1.qq.com/qqfile/qq/PCQQ9.1.3/25323/QQ9.1.3.25323.exe String gid = '';
bool firstRun = true; main()async{
print('1');
createConnection(); print('2');
await Future.delayed(Duration(seconds: 1));
createConnection(); print('3');
await Future.delayed(Duration(seconds: 1));
createConnection(); String url = 'https://dldir1.qq.com/qqfile/qq/PCQQ9.1.3/25323/QQ9.1.3.25323.exe'; var s = IOWebSocketChannel.connect('ws://localhost:6800/jsonrpc');
s.stream.listen(onData, onDone: onDone, onError: onError);
Map task = {"jsonrpc":"2.0","id":"m","method":"aria2.addUri","params":["token:studyaria2",["$url"]]};
s.sink.add(json.encode(task)); await Future.delayed(Duration(seconds: 1));
while(true){
checkStatus(s, gid);
await Future.delayed(Duration(seconds: 1));
} } checkStatus(IOWebSocketChannel channel, String gid){
Map task = {"jsonrpc":"2.0","id":"m","method":"aria2.tellStatus",
"params":[
"token:studyaria2",
"$gid",
["gid", "status", "totalLength", "completedLength", "downloadSpeed","files"]
]
};
channel.sink.add(json.encode(task));
} createConnection()async{
String aria2 = 'C:\\Users\\gshao\\aria2\\aria2c';
var a = await Process.run(aria2, [r'--conf-path=C:\Users\gshao\aria2\aria2.conf']);
await Future.delayed(Duration(seconds: 1));
var xx = await a.exitCode;
print('create ok 1: $a');
print('create ok 2 status: ${a.stdout}');
print('create ok 3 error:${a.stderr}');
print('create ok 4 exitcode:,');
} onData(v){
print('onData: $v');
if(firstRun){
gid = json.decode(v)['result'];
firstRun = false;
print('gid:::::::::::: $gid');
} } onDone(){
print('1, done');
} onError(e){
print('2, error: ${e.toString()}');
}

  

最新文章

  1. 转:Delphi的类与继承(VB与delphi比较)
  2. [SQL]Sql转至问题
  3. 阿里巴巴集团2016校园招聘-Python工程师笔试题(附加题+部分答案)
  4. ASP.NET Web.Config 读写辅助类
  5. 动态加载的数据,hover效果
  6. 初探接口测试框架--python系列7
  7. C 语言简历一个文件夹 并自己输入字符 来取文件夹名字
  8. C++#define的用法(含特殊)
  9. Day1 Python基础学习
  10. Ubuntu SSH root 登录 Permission denied 错误
  11. elasticsearch red status fix 红色状态修复
  12. springboot实现数据库中数据导出Excel功能
  13. POJ - 2777——Count Color(懒标记线段树二进制)
  14. MM-RGV、AGV 、IGV是什么
  15. Unity/C#基础复习(3) 之 String与StringBuilder的关系
  16. SpringCloud-初识微服务(一)
  17. Prism6下的MEF:添加Logger
  18. 类的成员变量修饰 const 和static
  19. 马拉车——Manacher一篇看上去很靠谱的理解(代码显然易懂)
  20. hybird app(混合式app开发)cordova ionic 创建相应平台的app

热门文章

  1. sentinel-dashboard安装、运行(docker)
  2. IntelliJ IDEA 运行你的第一个Java应用程序 idea运行main方法
  3. dd命令笔记
  4. Java基础 awt Frame 设置窗体的背景颜色
  5. Tesserac初探
  6. Qt 一张图片显示在其他组件之上
  7. 验证ogg同步数据库表无主键表且目标表包含隐藏字段
  8. Failed to open .vcf.gz: could not load index
  9. 使用清华源进行pip install
  10. firewall详解