【发布时间】:2011-08-01 10:20:22
【问题描述】:
我正在尝试使用套接字发送二进制文件。
FILE *file;
char *file_data;
file = fopen(filepath, "rb");
//Allocate memory
file_data=(char *)malloc(fileLen+1);
//Read file contents into buffer
fread(file_data, fileLen, 1, file);
fclose(file);
sent = send(client, file_data, strlen(header)+fileLen, 0);
它工作正常,但有些文件太大,我想读取一部分缓冲,发送它,然后读取第二部分,发送它等等。
我尝试使用 fread 和 fgets 获取零件,但失败了 =( 如何正确操作?
UPD:问题在于读取来自客户端的传入请求。我没读过。如果我这样做,就不会发生任何不好的事情
【问题讨论】:
-
您需要向我们展示如何您尝试过,否则很难回答您失败的原因。应该不会太难...
-
向我们展示您是如何使用 fread 和 fgets 进行操作的,我们将向您展示如何使其工作。我原以为你可以调用 fread 直到它返回一个与你的计数不同的值,然后在同一个循环中将它写入套接字。
标签: c file sockets binary send