我試圖使用套接字發送二進制文件。C:將文件發送到套接字
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:麻煩是閱讀從客戶端傳入的請求,我沒有讀它。如果我做到這一點。 ,沒有什麼不好的事情發生
你需要告訴我們*你怎麼試過,否則很難回答你失敗的原因。它不應該太難... – unwind 2011-04-08 10:57:09
告訴我們你如何用fread和fgets來做它,我們將告訴你如何使它工作。我會認爲你可以直接調用fread,直到它返回一個不同於你的count的值,並且在同一個循環中寫入到socket。 – mdm 2011-04-08 10:58:49