zyl910(910:分儿,我又来了!) : 每次传送4KB。部分代码如下:发送文件端: dim bytedata() as byte if ... then '不是文件的最后一块 .... '读文件部分 redim bytedata(1 to 4096) winsock1.senddata bytedata() else .... '读文件部分 redim bytedata(1 to leftover) winsock1.senddata bytedata() end if接收文件端: private sub Winsock1_DataArrivel(bytestotal as long) dim bytedata() as byte redim bytedata(1 to bytestotal) winsock1.getdata bytedata(),vbArray+vbByte ... end sub
每次传送4KB。部分代码如下:发送文件端:
dim bytedata() as byte
if ... then '不是文件的最后一块
.... '读文件部分
redim bytedata(1 to 4096)
winsock1.senddata bytedata()
else
.... '读文件部分
redim bytedata(1 to leftover)
winsock1.senddata bytedata()
end if接收文件端:
private sub Winsock1_DataArrivel(bytestotal as long)
dim bytedata() as byte
redim bytedata(1 to bytestotal)
winsock1.getdata bytedata(),vbArray+vbByte
...
end sub
因为传送的文件有的较大,可能上G,所以首先将文件读入内存有点担心.
另外,软件测试所在网络环境是一个100M交换机和两台电脑(100M网卡).
你试试Windows在局域网上复制文件速度有多快
所以每次winsock.senddata 后都要写一个doevents 不然发不出去要想快 直接使用API
应改一次socket连接后,多次进行发送,这样会快不少。
今天我重新找了个环境,出现了更牛的事:两台机子是WinXP Pro+sp1+VB6+Vs6sp6,能够正常传送文件,只是速度较慢。如果在两台Win2000 Pro+Sp4+VB6+Vs6sp6计算机上,能传送文件的一半,不成功。如果一台是WinXp,一台是Win2000就直接不成功。(注:以上都没有加载网络防火墙)
百思不得其解?
但传送文件的速度仍然很较慢!!!!!