用winsock传送二进制文件

发送代码

Public Function outFiles(filePath As String)

    Dim outFile() As Byte

    Dim outPath As String

    Dim outFileLen As Double

    Dim outFileStar As Double

    Dim lngN As Double

    Dim outN As Double

    Dim outFree As Long

    Dim i As Long

   

    '检查是否与服务器连接

    If wskCPost.State = 7 Then

        outPath = filePath

   

        outFileLen = FileLen(outPath)

        outN = outFileLen / 7000 + 1

       

        objJD.Max = outN

        dblJD = 0

        objJD.Value = 0

   

        For i = 0 To outN - 1

            objJD.Value = i

            If i = outN - 1 Then

                lngN = outFileLen - outFileStar +   1

            Else

                lngN = 7000

            End If

 

            ReDim outFile(1 To lngN)

            If outFileStar = 0 Then outFileStar = 1

            outFree = FreeFile

            Open outPath For Binary As #outFree

            Get #outFree, outFileStar, outFile

            Close #outFree

            outFileStar = outFileStar + UBound(outFile)

 

            wskCPost.SendData outFile

            DoEvents

        Next

    End If

       

End Function

接收代码

‘-----------------------------------------------------------------------------------------------------'接收二进制文件

            myPath = VB.App.Path & "/tmpFiles/" & listenN(index).fileName

            ReDim inFile(bytestotal)

            wskSPost(index).GetData inFile, vbArray + vbByte

 

            myFree = FreeFile

            Open myPath For Binary As #myFree  '新建或打开文件

            '将收到的数据写入新文件中

            listenN(index).infileLen = fileLen(myPath) + 1

            Put #myFree, listenN(index).infileLen, inFile

            Close #myFree                                  '关闭

            '记录文件长度

 

            If fileLen(myPath) + 1 >= listenN(index).fileLen Then

                '接收完成,将接收类型改为字符型

                listenN(index).fileLX = 0

                listenN(index).fileLen = 0

                listenN(index).infileLen = 0

                wskSPost(index).SendData "endf"  '文件接收完毕,向客户端发送确认

            End If

‘----------------------------------------------------------------------------------------------------

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值