下载此文档

VBSOCKET实现文件传输.docx


文档分类:通信/电子 | 页数:约9页 举报非法文档有奖
1/9
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/9 下载此文档
文档列表 文档介绍
VBSOCKET实现文件传输.docxVB 中使用 WinSock 控件传送文件
传送文件对于网络编程来说是基本的功能, 比如远程控制软件。 在编制一个软件时,我从网上下了很多传文件的程序, 这些程序提供的传文件功能根本就不能用。传文本还可以,传二进制eeF 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 + 1, byt

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

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数9
  • 收藏数0 收藏
  • 顶次数0
  • 上传人大笑大甜
  • 文件大小25 KB
  • 时间2022-02-10