国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
基于HTTP協(xié)議用WinSock實現(xiàn)任意文件下載
HTTP協(xié)議是文本格式通訊,下載文件是二進制數(shù)據(jù),怎樣處理好兩種格式,而不受VB獨斷專行的Unicode轉(zhuǎn)換影響,本代碼提供了一個示例。

Option Explicit
Private strURL As String
Private mstrFileName As String, mlngFileNum As Long
Private mlngFileLen As Long, mlngCurByte As Long
Private mblnOnlyLen As Boolean, mblnPutStart As Boolean
Private Sub Form_Load()
    strURL = Text1.Text @#準備下載的文件URL
    mstrFileName = Text2.Text   @#下載文件在本存放的位置與文件名
    Label1.Caption = "文件總字節(jié):0"
    Label2.Caption = "已下載字節(jié):0"
    Command1.Caption = "開始下載"
    Command2.Caption = "取得長度"
End Sub
Private Sub Command1_Click()
    mblnOnlyLen = False
    DownFile
End Sub
Private Sub Command2_Click()
    mblnOnlyLen = True
    Label1.Caption = "文件總字節(jié):0"
    DownFile
End Sub
Private Sub DownFile()
    mblnPutStart = False
    Label2.Caption = "已下載字節(jié):0"
    Command1.Enabled = False
    Command2.Enabled = False
    With Winsock1
        If .State <> sckClosed Then .Close
        .Protocol = sckTCPProtocol
        .RemoteHost = "article.tianyaclub.com"
        .RemotePort = 80
        .Connect
    End With
End Sub

Private Sub Winsock1_Connect()
    Dim s As String
    s = "GET " + strURL + " HTTP/1.0" + vbCrLf
    s = s + "Accept: */*" + vbCrLf
    s = s & "Pragma: no-cache" & vbCrLf
    s = s & "Cache-Control: no-cache" & vbCrLf
    s = s & "Connection: close" & vbCrLf & vbCrLf
    s = s + vbCrLf
    Winsock1.SendData s
End Sub
Private Sub CloseAll()
    If Winsock1.State <> sckClosed Then Winsock1.Close
    Close #mlngFileNum
    Command1.Enabled = True
    Command2.Enabled = True
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
    Dim RevData() As Byte
    Dim a() As Byte, b() As String, c() As String
    Dim s As String, i As Long, k As Long
    On Error GoTo fail
    If mblnPutStart = False Then
        Winsock1.PeekData RevData, vbArray Or vbByte
        k = InStrB(1, RevData, ChrB(13) & ChrB(10) & ChrB(13) & ChrB(10))
        If k > 0 Then
            Winsock1.GetData RevData, vbArray Or vbByte
            a = LeftB(RevData, k - 1)
            RevData = MidB(RevData, k + 4)
            s = StrConv(a, vbUnicode)
            b = Split(s, vbCrLf)
            If InStr(1, b(0), "200 OK", vbTextCompare) = 0 Then GoTo fail
            For i = 1 To UBound(b)
                c = Split(b(i), ": ")
                Select Case c(0)
                    Case "Content-Length"
                        mlngFileLen = CLng(c(1))
                        Label1.Caption = "文件總字節(jié):" & mlngFileLen
                        If mblnOnlyLen Then
                            CloseAll
                            Exit Sub
                        End If
                End Select
            Next
            mblnPutStart = True
            mlngCurByte = UBound(RevData) + 1
            mlngFileNum = FreeFile
            Open mstrFileName For Binary As #mlngFileNum
        Else
            Exit Sub
        End If
    Else
        Winsock1.GetData RevData, vbArray Or vbByte
        mlngCurByte = mlngCurByte + bytesTotal
    End If
    Put #mlngFileNum, , RevData
    Label2.Caption = "已下載字節(jié):" & mlngCurByte
    If mlngCurByte = mlngFileLen Then
        CloseAll
        MsgBox "下載成功!"
    End If
    Exit Sub
fail:
    CloseAll
    MsgBox "網(wǎng)絡(luò)傳輸錯誤,文件下載失?。?
End Sub
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
VB實用代碼,收藏!!
vb 6.0 簡單計算其代碼
利用Winsock控件實現(xiàn)FTP編程
教大家利用平臺短信接口,實現(xiàn)短信發(fā)送?。ǜ骄幊檀a)
VB中利用Winsock實現(xiàn)斷點續(xù)傳
webbrowser1提取網(wǎng)頁鏈接
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服