その通信のログを取りたいと思います。
確認のためのprintf()の部分では通信データがすべて出てくるのですが、
ファイルの書き込みがうまくいっていないのか、
ログファイル(log)にはprintf()で見える通信データの半分とすこししか
残っていませんでした。
(printf()されるデータは実際の通信データと照合して正しいとわかっています)
fwrite()のつかいかたがあやしいのですが、通信データはバイナリを扱う場合もあるため
テキスト用の関数が使えないのです。
なにかいい方法はありますでしょうか?
//通信内容保存スレッド
void* thread2(void* pParam)
{
char *buf2;
int ret2;
FILE *file2;
int i;
i=0;
buf2=(char*)malloc(sizeof(char)*100000000);
file2 = fopen("log","wb");
while(1){
i++;
memset(buf2,'\0',ret2);
ret2 = recv(ClientSock, buf2, 100000000,0);
printf("\n%d\n%s\n\n\n",i,buf2); //確認のために
fwrite(buf2,ret2,1,file2); //データを書き込む・・・・
if(ret2<=0)break;
}
fclose(file2);
exit(0);
}