下载此文档

VBSOCKET实现文件传输.docx


文档分类:通信/电子 | 页数:约9页 举报非法文档有奖
1/9
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/9 下载此文档
文档列表 文档介绍
VB 中使用 WinSock 控件传递文件
传递文件关于网络编程来说是基本的功能, 比方远程控制软件。 在编制一个软件时,我从网上下了好多传文件的程序, 这些程序供给的传文件功能根本就不可以用。传文本还可以够,传二 Dim FreeF As Integer ' Dim LenFile As Long ' Dim bytData() As Byte '

安闲的文件号
文件的长度
寄存数据的数组
FreeF = FreeFile ' 获取安闲的文件号
Open FileName For Binary As #FreeF ' 翻开文件
DoEvents
LenFile = LOF(FreeF) ' 获取文件长度
If LenFile <= iMax Then ' 假如要发送的文件小于数据块大小,直接发送
ReDim bytData(1 To LenFile) ' 依据文件长度从头定义数组大小
Get #FreeF, , bytData ' 把文件读入到数组里
Close #FreeF ' 封闭文件
bytData ' 发送数据
Exit Sub
End If
'文件大于数据块大小,进行分块发送
Do Until (iPos >= (LenFile - iMax)) ' 发送整块数据的循环
ReDim bytData(1 To iMax)
Get #FreeF, iPos + 1, bytData
bytData
iPos = iPos + iMax ' 挪动 iPos ,使它指向下来要读的数据 Loop
'这里要注意的是,一定检查文件有没有剩下的数据,假如文件大小正好等于数据块大小的
整数倍,那么就没有剩下的数据了
ReDim bytData(1 To LenFile - iPos) ' 发送剩下的不够一个数据块的数据
Get #FreeF, iPos + 1, bytData
bytData
Close #FreeF
下边是接收端的程序:
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
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)
bytData

是文件名
If lLenFile = 0 Then 'lLenFile=0 表示是第一次翻开文件,这里有个问题,就是 '
假如假如该文件存在的话,就会犯错,应当在翻开前检查文件能否存在。 (这里我省略了)
Put #f, 1, bytData
Else
Put #f, lLenFile +

VBSOCKET实现文件传输 来自淘豆网m.daumloan.com转载请标明出处.