vb 数据文报太大,不能装入缓冲区并被截断

来源:百度知道 编辑:UC知道 时间:2024/06/24 05:41:30
我要读取的a.bmp有2.50MB 想读取以后用winsock发送 结果它提示“数据文报太大,不能装入缓冲区并被截断” 我想了一个办法 就是把这个3.50MB的文件分段发送用for循环这个i控制着当前数据的位置, 就是不会写代码 ,我真是没有办法,请大侠帮帮忙 。

Dim B() As Byte
Dim I As Long
Open "d:\a.bmp" For Binary As #1 '以二进制方式打开文件
I = LOF(1) '获取文件长度’该大小以字节为单位
ReDim B(I - 1) '用于为动态数组变量重新分配存储空间。
Get #1, , B '将一个已打开的磁盘文件读入一个变量之中。
Close #1
Winsock1.SendData B ', vbByte '发送整个文件,字节方式

VB的缓冲区最大数据是64k。

给你一段我的代码,这是商业软件《思思3D彩票统计专家》里面的片段,会不会用就看你的造化了。
支持多线程传输。

一、SendFile类模块

'单线程文件传出模块
'用法:在窗体中,点击cmd按钮后开始传送
'多线程winsock情况:
'Private Sub cmd_Click()
'Dim i As Long
'Call SendFile.SendFile(Form1.wsk(0), "127.0.0.1", 2008, "D:\myvb\3D\", "user.jpg", 50000)
'End Sub

'Private Sub wsk_0Connect(Index As Integer)
'SendFile.wsk_Connect
'End Sub

'Private Sub wsk_SendComplete(Index As Integer)
'SendFile.wsk_SendComplete
'End Sub
'
''或单线程winsock情况:
'Private Sub cmd_Click()
'Dim i As Long
'Call SendFile.SendFile(Form1.wsk, "127.0.0.1", 2008, "", "user.jpg", 50000)
'End Sub

'Private Sub wsk_0Connect()
'SendFile.wsk_Connect
'End Sub

'Private Sub wsk_Send