局域网里传输文件,传大文件就会出现问题,
<p>我在用winsock写一个在局域网里传输文件的程序,</p><p>现在是可以传小的文件,传大文件就会出现问题,</p><p>首先,在发送端,循环读文件时(我用的是PB帮助里的代码),</p><p>读出的大小不一样,第一个是32769,以后的都是9741</p><p>并且,多读了很多便,,</p><p>而且只是发送最后一部分.</p><p>请高手指点.谢谢!</p><p>另外是否可以用别的方法实现局域网内文件的传输,(发消息,我实现了)</p><p>谢谢!</p> <p>我是先把文件的名字发送过去,接着发送数据,通过标示区别,</p><p>但是好像,文件名字发送不成功,</p><p>如果,发送名字,接受到后发送应答,再发送数据,是可以的,但是为什么不加应答就不行呢?</p><p>这样是不是,每个数据包也要,发送,收到应答,再发送呢?</p><p>谢谢.</p> <p>前面我提的问题很乱,我试了,发现,问题首先在发送</p><p>测试了一下,发现读了很多次,如下,前两次读的大小是32769,后面是9741</p><p>$32769$32769$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741$9741</p><p></p><p>string ls_filename<br/>ls_filename = filename//filename是要发送的文件的名字 <br/>integer li_FileNum, loops, i <br/>long flen, bytes_read, new_pos<br/>blob b,tot_b<br/>// Set a wait cursor<br/>SetPointer(HourGlass!)<br/>// Get the file length, and open the file<br/>flen = FileLength(ls_filename)<br/>li_FileNum = FileOpen(ls_filename, &<br/> StreamMode!, Read!, LockRead!)<br/>// Determine how many times to call FileRead<br/>IF flen > 1020 THEN<br/> IF Mod(flen, 1020) = 0 THEN<br/> loops = flen/1020<br/> ELSE<br/> loops = (flen/1020) + 1<br/> END IF<br/>ELSE<br/> loops = 1<br/>END IF<br/>// Read the file<br/>new_pos = 1<br/>FOR i = 1 to loops<br/> tot_b = blob("data")<br/> bytes_read = FileRead(li_FileNum, b) <br/> tot_b = tot_b + b<br/> Write_Data = tot_b<br/> WriteMsg()<br/>NEXT<br/>FileClose(li_FileNum)<br/>return 0</p><p>在下面的一句:如果我控制b的大小是不是就可以控制每次读取的大小</p><p>例如: b = blob(space(1020)) 但是好像不行</p><p>bytes_read = FileRead(li_FileNum, b) </p>
页:
[1]