Woodu's Blog

想自己感兴趣的。虽然这个词不那么严肃。

今天实在太懒了,直接扔核心代码。这段代码通过期间的指令就可以完成单Winsock完善任何文件传输。配合那个Yanshi函数可以控制cpu和内存占用率了///惯例,优化版本不扔

Private Sub Sock_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Rem 提示
'Type recivefile
'    startrecive As Boolean
'    startfilename As Boolean
'    FileName As String
'    startfiledata As Boolean
'    endl As Boolean
'End Type
'Type strrec
'    startstr As Boolean
'    str As String
'End Type
'Private file() As recivefile
'Private str() As strrec
Rem 前提是不是0,凡是传输到0的一概抛弃掉
If Index <> 0 Then
    ReDim tempdata(bytesTotal)
    Sock(Index).GetData tempdata()
    Dim tempstr As String
    tempstr = CStr(tempdata())
    If Len(CStr(tempdata())) * 2 < 512 Then
    Dim tmpx As Long
    tempstr = ""
    For tmpx = 0 To UBound(tempdata)
        tempstr = tempstr & Chr(tempdata(tmpx))
    Next
    End If
    Rem 第一个字符串是个什么玩意?
    Select Case tempstr
    Case "String":
            Rem 字符串处理入口
            str(Index).startstr = True
            Exit Sub
            Rem 字符串第一阶段结束
    Case "Data":
            Rem 文件接收入口
            file(Index).startrecive = True
            Exit Sub
    Case "FileName":
            Rem 文件名接收入口
            file(Index).startfilename = True
            Exit Sub
    Case "StartFile":
            Rem 文件数据
            file(Index).startfiledata = True
            Exit Sub
    Case "EOFFile":
            file(Index).startfiledata = False
            'Close Index
            Close Index
            Exit Sub
            Rem 文件接收第一阶段结束
    ''''''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''警报!!'''''''''''''''''
    ''''''''Rem 设置传输构思中ing~''''''''''''
    '''''''''''''''''警报!!'''''''''''''''''
    ''''''''''''''''''''''''''''''''''''''''''
    Case "Config":
    ''''''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''警报!!'''''''''''''''''
    ''''''''Rem 设置传输构思中ing~''''''''''''
    '''''''''''''''''警报!!'''''''''''''''''
    ''''''''''''''''''''''''''''''''''''''''''
    Rem 第二阶段入口
    Case Else:
        If str(Index).startstr Then
                str(Index).str = tempdata()
                Rem 字符串接收入口,写入到文件中,其中,目录名称会在保存中出现
                Open "C:\aaa\" & Index & ".txt" For Append As Index
                    Print #1, str(Index).str
                Close Index
                txtLog = txtLog & vbCrLf & "收到新的消息。由" & Index & "号终端发送。已经保存在" & "C:\aaa\" & Index & ".txt。"
                str(Index).startstr = False
                Rem 关闭接收符号

                Rem 字符串接收结束
        Else
            If file(Index).startrecive Then
            Rem 文件接收入口
                If file(Index).startfilename Then

                        tempstr = ""
                        For tmpx = 0 To UBound(tempdata)
                            tempstr = tempstr & Chr(tempdata(tmpx))
                        Next
                        file(Index).FileName = CStr(tempstr)
                    file(Index).FileName = Base64Decode(file(Index).FileName)
                Rem 文件名接口结束
                    Open "C:\aaa\" & file(Index).FileName & ".file" For Binary Access Write As Index
                    file(Index).startfilename = False
                    Exit Sub
                Else
                    If file(Index).startfiledata Then
                        Put Index, , tempdata()
                    End If
                End If
            End If
        End If
    End Select
End If
End Sub

All ends.All Begins.

Posted by Woodu under 外面有谁?

都结束了。考成什么样也都是浮云了。这也算严重影响!?
—–> Read the rest of this entry »

历史/政治试题
XD

请先点击旁边Google广告!

政治地址:
08.4期中考试答案.doc明确社会责任.doc科教兴国.doc

历史下载
中考模拟习题.doc

时事政治啊题啊
来自学校~

DOC格式~
下载在此~

请点击旁边的

G oog le 广 告

支持本Blog发展

然后最好留名


时事政治.doc

好像需要登录……不会的发Email给我好了……

lljtsj@gmail.com

女士们,先生们,Ladies and gentlemen,谢谢各位来我Blog捧场~当然,能顺手点点旁边的Google广告那就更好了~^ ^呵呵~

以上为废话。
|||||||||||||||华丽牌分割线|||||||||||||||
俺那人生规划(PIA飞)
|||||||||||||||华丽牌分割线|||||||||||||||
好啦……表打啊……T T……开始写啦……

正文以下