我用Socket传输二进制文件(如Gif,JPEG图形文件)总是出错,传输后的文件打不开
后来发现在用如下代码时
dim strText() as byte
Open strFileName For Binary As #nFile
strText = String(LOF(nFile), " ")
Get #nFile, , strText
Close #nFile
strText得到的内容与源 文件的内容有差异,不知道是什么道理
望高手指点
...全文
547打赏收藏
有关Socket传输二进制文件问题
我用Socket传输二进制文件(如Gif,JPEG图形文件)总是出错,传输后的文件打不开 后来发现在用如下代码时 dim strText() as byte Open strFileName For Binary As #nFile strText = String(LOF(nFile), " ") Get #nFile, , strText Close #nFile strText得到的内容与源 文件的内容有差异,不知道是什么道理 望高手指点
你的程序是有点问题,因为winsock一次能传的数据是一个最大值的。 如果你要传输的话,就要把你的文件分成几块,每次只能传一块。
ex:如果文件长1024*5+36 bytes的话,若以1024 bytes为一块,就分成6部分,
dim strText() as byte
redim strtext(1023) as byte
open file for binary as #1
for i=0 to 4
get #1,,strtext()
wsk.senddata strtext
next i
redim strtext(35) as byte
get #1,,strtext()
wsk.senddata strtext()
接受端:
dim buf() as byte
wsk.getdata buf()
put #2,,buf
谢谢各位的回答
我用代码
dim strText() as byte
Open strFileName For Binary As #nFile
redim strText(LOF(nFile)-1) as byte
Get #nFile, , strText
Close #nFile
试了一下,好像还是不对;
cai12345(cai)的回复,能详细点吗,谢谢!