vb socket通信 大文件端口上传(2)

今天我们来分享一下通过winsock控件,端口传输文件,以及如何确定传输完成标志。

文件传输完成标志的确定是通过三次握手来确定的,首先,客户端现将文件的长度发送给服

务器端,当服务器端受到文件长度之后,进入接受文件状态,同时返回一个“send”信

号给客户端。当客户端受到“send”后,再将文件发送服务器。服务器通过接收数据的

大小来计算文件是否发送完毕。下面让我们来看一下代码吧。

服务器端:

Private Sub scksever_DataArrival(Index As Integer, ByVal bytesTotal As Long)
'On Error GoTo err3
Dim sData, strData As String
If zhi = 0 Then
    scksever(Index).GetData strData
    sData = Left$(strData, 3)
    If sData = "str" Then
    wenlong = Right$(strData, Len(strData) - 3)
    zhi = 100 '接收文件
    scksever(Index).SendData "send"
    End If
Else
     
            strFileName = "D:/nan/00469292.zip"
            Dim bytData() As Byte
            Dim lLenFile As Long
            Dim f
            f = FreeFile()
            Open strFileName For Binary As #f '/'strFileName是文件名
            lLenFile = LOF(f)
            ReDim bytData(1 To bytesTotal)
            scksever(Index).GetData bytData
                If lLenFile = 0 Then '/'lLenFile=0表示是第一次打开文件

                Put #f, 1, bytData
                Else
                Put #f, lLenFile + 1, bytData
                End If
                Close #f
                jia = jia + bytesTotal
            If jia = wenlong Then
                txtSql.Text = txtSql.Text & "发送完毕"
                ’这时文件就发送完成了,你可以在这里进行文件完成的其他操作。

            End If
 '
 End If
End Sub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值