我VB编写一段两台机器传送文件的winsock程序,服务器端为什么接收大文件不行?小文件可以呢?
是否与TCP/IP协议有关?
思想上是原文件(图形、声音等可以先存成临时文件)以二进制文件的方式来打开它,将其内容全部读入一个byte类型的数组中,本地机代码如下:
dim myfile () as byte
dim position as long
open "文件名" for binary as #1
position=0
do while not eof(1)
position=positon+1
redim preserve myfile (1 to position)
get #1,,myfile(position)
loop
close #1
再向远程机传送这个字节数组
sckserver.SendData myfile
远程机(服务器端)收到这个数组之后,再以二进制文件的方式打开一个新目标文件,将数组内容写入这个新打开的文件
远程机代码如下:
Private sub sckconnect_DataArrival(byval bytestotal as long)
dim receivefile()as byte
redim receivefile(bytestotal)as byte
sckconnect.GetData receivefile,vbarray+vbbyte
'告诉Winsock控件收到的是字节数组类型的数据
open "c:\temp\文件名" for binary as #1
for I=0 to bytestotal-1
put #1,,remotearray(I)
next I
clost #1
end sub
是否与TCP/IP协议有关?
思想上是原文件(图形、声音等可以先存成临时文件)以二进制文件的方式来打开它,将其内容全部读入一个byte类型的数组中,本地机代码如下:
dim myfile () as byte
dim position as long
open "文件名" for binary as #1
position=0
do while not eof(1)
position=positon+1
redim preserve myfile (1 to position)
get #1,,myfile(position)
loop
close #1
再向远程机传送这个字节数组
sckserver.SendData myfile
远程机(服务器端)收到这个数组之后,再以二进制文件的方式打开一个新目标文件,将数组内容写入这个新打开的文件
远程机代码如下:
Private sub sckconnect_DataArrival(byval bytestotal as long)
dim receivefile()as byte
redim receivefile(bytestotal)as byte
sckconnect.GetData receivefile,vbarray+vbbyte
'告诉Winsock控件收到的是字节数组类型的数据
open "c:\temp\文件名" for binary as #1
for I=0 to bytestotal-1
put #1,,remotearray(I)
next I
clost #1
end sub
解决方案 »
- 求助给vb6里使用的ole控件里的excel赋值
- VB6,ADO DATA 控件 有 Filter属性吗
- ◆我没分了,给不了分,请帮我求这一sql语句,成分感谢。。
- EXCEL-VBA- ontime 函数的问题
- 各位大虾,如何找出记录集中一个特定字段(序号)的最大值?
- 各位...谁知道sscommand控件在哪里有啊?
- 如何才能给用户呈现一个始终在活动的界面
- 请问:inet访问网站,是从本机的什么端口访问的?它访问的是服务器的什么端口?
- 请问有没有人知到如何只下载文件的一半?
- VB EXCEL 文件查找并复制
- 如何调用ORACLE中自建的函数.巨急ING~~~~~~
- 如何才能在浏览器的弹出菜单中加入一个菜单项?? 或者在工工具栏中回入一个按钮.
每发送语句后 跟个DOEVENTS