[DSAPI.DLL下载地址]


 DSAPI多功能组件编程应用-网络相关,网络相关编程有很多很多,这里讲解一下封装在DSAPI中的网络相关的功能,这些都是本人简化到极点的功能了,可以在软件开发过程中节省大量代码编写时间.

先来看几个最简单的:
        '---IP相关
Console.WriteLine(DSAPI.网络相关.本机内网IP)
Console.WriteLine(DSAPI.网络相关.本机外网IP和所在地())
Console.WriteLine(DSAPI.网络相关.本机外网IP所在省)
Console.WriteLine(DSAPI.网络相关.本机外网IP所在市)
Console.WriteLine(DSAPI.网络相关.获取域名指向的IP("dskj.meibu.net"))
'----下载相关
Console.WriteLine(DSAPI.网络相关.获取文件大小("http://dlsw.baidu.com/sw-search-sp/soft/2e/10849/wrar520sc_setup.1418806135.exe"))
Console.WriteLine("WinRar大小=" & DSAPI.文件类.获取可读性强的字节大小信息(DSAPI.网络相关.获取文件大小("http://dlsw.baidu.com/sw-search-sp/soft/2e/10849/wrar520sc_setup.1418806135.exe")))

输出结果:


192.168.1.53

112.82.187.65,江苏省常州市 联通

江苏省

常州市

114.226.11.7

1867312

WinRar大小=1.78MB


多线程下载
如此简单的多线程下载,我认为没有什么比这个更适合你用的了.

 Private WithEvents _下载 As DSAPI.网络相关.多线程下载
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim 下载 As New DSAPI.网络相关.多线程下载
With 下载
.保存路径 = "c:\1.exe"
.缓存容量 = 2000000 '当每批次下载达到此长度时写入文件
.文件网址 = "http://dlsw.baidu.com/sw-search-sp/soft/2e/10849/wrar520sc_setup.1418806135.exe"
.总下载线程数 = 5
Console.WriteLine("准备下载的文件大小=" & .文件大小)
.启动下载()
End With
_下载 = 下载
End Sub Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
If _下载 IsNot Nothing Then
Dim Sb As New System.Text.StringBuilder
With Sb
.AppendLine("文件下载地址:" & _下载.文件网址)
.AppendLine("文件大小:" & DSAPI.文件类.获取可读性强的字节大小信息(_下载.文件大小))
.AppendLine("下载线程数:" & _下载.总下载线程数)
.AppendLine("下载速度:" & DSAPI.文件类.获取可读性强的字节大小信息(_下载.下载速度_字节_每秒) & "/S")
.AppendLine("下载进度:" & _下载.下载进度)
End With
End If
End Sub Private Sub _下载_文件下载完成(FilePath As String, SourceName As String) Handles _下载.文件下载完成
Console.WriteLine(FilePath & "已经下载完成")
End Sub Private Sub _下载_下载出错(FilePath As String, SourceName As String, Exception As Exception) Handles _下载.下载出错
Console.WriteLine(SourceName & "下载失败")
End Sub

上述代码中,使用Timer定时器定期获取下载状态,缓存大小默认为2M,下载线程数,建议下载大文件时使用10线程以上,小于10M的文件使用少于3个线程.





DSAPI多功能组件编程应用-网络相关(上)的更多相关文章

  1. DSAPI多功能组件编程应用-网络相关(下)

    [DSAPI.DLL下载地址] 在本篇,我将重点介绍DSAPI.DLL中Socket编程的使用.众所周知,Socket用起来不难,但是写起来麻烦.我对Socket进行了封装,进行了高度简化.下面我将通 ...

  2. DSAPI多功能组件编程应用-网络相关(中)

    [DSAPI.DLL下载地址] 在中篇,我将演示比上篇稍微复杂点的功能.如HTTP监听和局域网广播. 有时,我们会有这样的需求:用户通过浏览器来访问获取数据,我们的程序需要监听指定端口,根据不同的请求 ...

  3. DSAPI多功能组件编程应用-反射相关

    [DSAPI.DLL下载地址]       在.Net中,反射技术是一种入门困难,熟用快速的东西,对于没有接触过反射技术的程序员来说的确是头疼的,看一旦自己写过了,上手就非常简单了.在本节,将部分.N ...

  4. DSAPI多功能组件编程应用-HTTP监听服务端与客户端_指令版

    前面介绍了DSAPI多功能组件编程应用-HTTP监听服务端与客户端的内容,这里介绍一个适用于更高效更快速的基于HTTP监听的服务端.客户端. 在本篇,你将见到前所未有的超简化超傻瓜式的HTTP监听服务 ...

  5. DSAPI多功能组件编程应用-参考-Win32API常数

    DSAPI多功能组件编程应用-参考-Win32API常数 在编程过程中,常常需要使用Win32API来实现一些特定功能,而Win32API又往往需要使用一些API常数,百度搜索常数值,查手册,也就成了 ...

  6. DSAPI多功能组件编程应用-HTTP监听服务端与客户端

    本文中,演示了使用DSAPI.网络相关.HTTP监听,快速建立服务端和客户端. HTTP监听服务端的作用,是监听指定计算机端口,以实现与IIS相同的解析服务,提供客户端的网页请求,当然,这不仅仅是应用 ...

  7. DSAPI多功能组件编程应用-文件类

    [DSAPI.DLL下载地址]     本节内容,是属于"无需过多说明"就能使用的功能.由于实在是太简单,我就简单地示例一下. DSAPI.文件类.获取可读性强的字节大小信息(&q ...

  8. DSAPI多功能组件编程应用-DS提示气泡

    首先下载DSAPI.dll.并在项目中引用. 该功能包括在DSAPI1.0.1.1及更高版本号,DLL请到本人资源里查找. Private Sub Button1_Click(sender As Ob ...

  9. DSAPI多功能组件编程应用-使用外部字体(包括资源文件)

    在软件开发过程中,尤其是比较个性化的程序,有时会需要使用非安装字体文件,比如发布的时候附带了一个专用字体,或者该字体文件直接被放入项目资源,当不希望把这个字体安装到用户的操作系统但又想使用它时,本示例 ...

随机推荐

  1. CP343-1 扩展ProfibusCPU 314C-2DP

    1. MPI编程电缆连接PLC ,设置接口为PC Adapter MPI.1,如下图所示 2. 硬件组态插入组态,建立ethernet 网络,编译后下载 3.CP343-1安装上后,CPU run不起 ...

  2. 旧项目Makefile 迁移CMake的一种方法:include Makefile

    有些c++旧项目用Makefile,要迁移CMake的时候非常痛苦,有些像static pattern的语法和make自带命令 cmake要重写一套非常的麻烦. 因此这里用trick的方法实现了一种i ...

  3. web 11

    Obtaining the JSON: 1.首先,我们将把要检索的JSON的URL存储在变量中. 2.要创建请求,我们需要使用new关键字从XMLHttpRequest构造函数创建一个新的请求对象实例 ...

  4. 2019中山大学程序设计竞赛-Monitor

    题目地址 题目大意:给你一个n*m的矩形,在这个矩形内告诉你p个矩形(左下角和右上角坐标),问你q个问题,每次也是给你一个矩形(左下角和右上角坐标),问你每个矩形是否可以被开始给的p个矩形完全覆盖. ...

  5. js jq 字符串数组对象

    数组是有序的,对象是无序,数组是特殊的对象 数组 声明数组 var arr=new Array('red','blue','yellow'); //["red", "bl ...

  6. 不会git的程序员,会不会被鄙视?

    昨天一朋友在微信上问了我一个问题,我觉得很有趣,于是将本次聊天的内容分享给大家. 我朋友说,如果一个程序员不会使用 git,会不会被别人觉得低一个档次? 事先声明啊,这与公司技术栈无关,不要说有些公司 ...

  7. 购物车自己sql错误

    $user_id=$_GET['user_id']; if(!$user_id){ $arr=array('code'=>-1,'data'=>"用户不存在"); ec ...

  8. JS DOM与BOM

    DOM知识点 [DOM(文档对象模型)是 HTML 和 XML 的应用程序接口(API).DOM代表着被加载到浏览器窗口里的当前网页:浏览器向我们提供了当前网页的地图(或者说模型),而我们可以通过js ...

  9. JVM之垃圾回收

    1.哪些内存需要回收?判断对象已死的方法(存活判定算法) 1.引用计数算法:难以解决对象之间相互循环引用的问题,不使用. 2.可达性分析算法:通过一系列“GC Root”对象作为起始点向下搜索,所走过 ...

  10. Vue 单文件原件 — vCheckBox

    简书原文 做东西一向奉行的是致简原则,一定要让使用者简单 这是我在使用 Vue 一段时间后尝试制作的一个小玩意 我希望可以做一堆这样的小玩意,随意组合使用,感觉挺好的 源码在最后 演示DEMO 示例: ...