我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