socket编程传输图片的问题
在socket编程中,我在服务端用send函数发送数据,在客户端用recv函数接受数据。当发送一个文本文件时,能够正常发送和接收。但是当发送一张图片时,服务端只发送了图片的一部分就以为图片发送完毕了,就不发了,客户端那边就只能接收到该图片的一部分数据。请问这是怎么回事?在程序中,我用while(fgets(buf,BUFLEN,fp)!=NULL)获取要传输的文件的数据,然后send()。 没有人帮帮小弟吗?
图片文件是2进制文件,
因为你使用的函数是针对文本文件.导致读文件中间,就认为文件结束 fgets(buf,BUFLEN,fp)!=NULL遇到特殊字符就不读取了。
fread比较合适吧。 不能用fgets,fgets读到换行就结束了,用read 用fread读文件,读出数据强制为unsigned char后再send。 能不能看看你的代码呀,我也刚开始学,想借鉴借鉴
页:
[1]