⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form5.vb

📁 编程环境VB.NET2005 多线程下载
💻 VB
字号:
Public Class Form5

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Me.TextBox2.Text = Me.BinToStr(Me.GetFavIcoFun(Me.TextBox1.Text))
    End Sub
    Function GetFavIcoFun(ByVal iconUrl As String) As Byte()
        Dim objIcon As IO.MemoryStream
        Dim sURL As String = Trim(iconUrl)
        If Not sURL.ToLower().StartsWith("http://") Then sURL = "http://" & sURL

        Dim URLReq As Net.HttpWebRequest, URLRes As Net.HttpWebResponse
        Dim bBufferSize As Integer = 1000
        Dim bBuffer(bBufferSize - 1) As Byte, pos As Integer, B() As Byte = Nothing
        URLReq = DirectCast(Net.WebRequest.Create(sURL), Net.HttpWebRequest)
        URLRes = DirectCast(URLReq.GetResponse, Net.HttpWebResponse)
        Dim sChunks As IO.Stream = URLReq.GetResponse.GetResponseStream
        Dim L As Integer = 0
        Do
            pos = sChunks.Read(bBuffer, 0, bBufferSize)
            L += pos
            ReDim Preserve B(L - 1)
            Array.Copy(bBuffer, 0, B, L - pos, pos)
        Loop Until pos = 0
        sChunks.Close()

        objIcon = New IO.MemoryStream(B)
        Me.Icon = New Icon(objIcon)
        Return B
    End Function
    Public Function BinToStr(ByVal inBytes() As Byte) As String
        Dim sb As New System.Text.StringBuilder
        ' Dim u As New System.Text.UnicodeEncoding
        'Dim u As New System.Text.ASCIIEncoding
        Dim u As New System.Text.ASCIIEncoding

        Dim cc() As Char = u.GetChars(inBytes)
        For Each c As Char In cc
            sb.Append(c.ToString)
        Next
        Return sb.ToString
    End Function

    Private memDisk As Integer = 10 * 100
    Private bufferSize As Integer = CInt(Me.memDisk / 100)
    Sub DoDownload(ByVal file As String, ByVal url As String)
        Dim ns As System.IO.Stream = Nothing : Dim request As Net.HttpWebRequest
        Dim fs As New IO.FileStream(file, System.IO.FileMode.OpenOrCreate, IO.FileAccess.Write, IO.FileShare.ReadWrite)
        Dim b(bufferSize - 1) As Byte : Dim ret As Integer
        Dim memB(memDisk - 1) As Byte
        Try
            MsgBox(url)
            request = CType(Net.HttpWebRequest.Create(url), Net.HttpWebRequest)
            '接收的起始位置及接收的长度
            ns = request.GetResponse.GetResponseStream
            Dim L As Integer = 0
            Do
                ret = ns.Read(b, 0, bufferSize)
                If L + ret >= memDisk Then
                    fs.Write(memB, 0, L)
                    L = ret
                Else
                    L += ret
                End If
                Array.Copy(b, 0, memB, L - ret, ret)

            Loop Until ret = 0
            fs.Write(memB, 0, L)
            'ret = ns.Read(b, 0, bufferSize)
            'While ret > 0
            '    If Me.m_stop = True Then Exit While
            '    fs.Write(b, 0, ret)
            '     Me.m_speed += ret
            '    Me.m_nowPos += ret
            '    While speedlimit
            '        System.Threading.Thread.Sleep(10)
            '        If Me.m_stop = True Then Exit While
            '    End While
            '    ret = ns.Read(b, 0, bufferSize)
            'End While
            fs.Close()
            ns.Close()
            '            RaiseEvent thStop(Me, Me.MyThreadData)
        Catch ex As Exception
            '           Me.thisThNoErrStop = False
            '          RaiseEvent thStop(Me, Me.MyThreadData)
            Debug.WriteLine("出错" & Now.ToString & " : " & ex.Message)
        Finally
            If fs Is Nothing = False Then fs.Close()
            If ns Is Nothing = False Then ns.Close()
        End Try
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim th As New System.Threading.Thread(AddressOf Me.dd)
        th.Start()
    End Sub
    Sub dd()
        Dim s1 As String = TextBox1.Text
        Dim s2 As String = TextBox2.Text
        s1 = "m:\1.txt"

        DoDownload(s1, s2)
        MsgBox(123)
    End Sub

    Private Sub Form5_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim s As IO.Stream

    End Sub
End Class

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -