VBWinsock语法错误
Public Sub SendFile(FileName As String, Winsock1 As Winsock)
Dim FreeF As Integer '空闲的文件号
Dim LenFile As Long '文件的长度
Dim SendtData() As Byte '存放数据的数组
FreeF = FreeFile '获得空闲的文件号
Open FileName For Binary As #FreeF '打开文件
DoEvents
LenFile = LOF(FreeF) '获得文件长度
If LenFile <= iMax Then '如果要发送的文件小于数据块大小,直接发送
ReDim SendData(1 To LenFile) '根据文件长度重新定义数组大小
Get #FreeF, , SendData '把文件读入到数组里
Close #FreeF '关闭文件
Winsock1.SendData (SendData) '发送数据
Exit Sub
End If '文件大于数据块大小,进行分块发送
Do Until (iPos >= (LenFile - iMax)) '发送整块数据的循环
ReDim SendData(1 To iMax)
Get #FreeF, iPos + 1, SendData
Winsock1.SendData SendData
iPos = iPos + iMax '移动iPos,使它指向下来要读的数据
Loop '这里要注意的是,必须检查文件有没有剩下的数据,如果文件大小正好等于数据块大小的整数倍,那么就没有剩下的数据了
ReDim SendData(1 To LenFile - iPos) '发送剩下的不够一个数据块的数据
Get #FreeF, iPos + 1, SendData
Winsock1.SendData SendData
Close #FreeF
End Sub
Private Sub 文件发送_Click()
Dim FilePath '定义文件路径
Form1.CommonDialog1.ShowOpen
FilePath = Form1.CommonDialog1.FileName
SendFile(FilePath,Winsock1)
End Sub
又是同样的问题,网上抄的程序一般是不能直接运行的,因为它不完整,至少你的Winsock类型没有定义
你要有完整的程序,且若参考别人程序至少你要能理解它的程序,所以初学者要学好编程最好是自己写程序而不是参考别人的