fread网络发送文件fwrite后,MD5不同的问题
时间:2014-09-02 20:34 来源: 我爱IT技术网 作者:山风
呵呵,其实这个问题蛮简单的,就是有时候感觉不到而已。我在客户端代码大致如下:
- //3 把文件分段传输
- memset(&asp,0,sizeof(asp));
- FILE *f=fopen(localFilename,"rb");
- unsigned int count=0;
- while (asp.transfer.len= fread(&asp.transfer.data,1,TRANSFER_CAPACITY,f))
- {
- asp.datatype=_DataType_Transfer_;
- asp.transfer.id=++count;
- SendPacket();
- memset(&asp,0,sizeof(asp));
- RecvPacket();
- memset(&asp,0,sizeof(asp));
- }
- fclose(f);
我接收端代码是:
- file=fopen(request.filename,"w");
- 。。。
- fwrite(asp.transfer.data,1,asp.transfer.len,file);
这段代码怎么就是工作不正常的呢?
我在Windows的记事本里看,两个文本文件显示的一模一样。但是放到Araxis Merge中发现,我接收到的文件都比原文件要多很多换行。源文件有一个换行,接受回来就是两个。。。
这是怎么回事的呢?
我传个文本文件就这个样子,那二进制的话,还怎么活啊?
嘿嘿,可能问题出在“二进制”上面!
尝试把接受代码改为
file=fopen(request.filename,"wb");
搞定!呵呵,貌似UNIX下面不需要这个b参数来表示二进制,但是Win下面是必需的。
本文来源 我爱IT技术网 http://www.52ij.com/jishu/12450.html 转载请保留链接。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
