掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
転送エラー (ID:58507)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
isshiさんがおっしゃられたように戻り値をつかってみても、うまく送信できませんでした。なぜか途中で止まってしまいます。 送信側はこのようにしてみました。 while(header2.fsize>0){ if(header2.fsize<=524288){ res=fread(data,sizeof(char),header2.fsize,fp2); res=send(c,(char *)&data,res,0); if(res==SOCKET_ERROR) error("ファイル送るエラー2\n"); break; } else{ res=fread(data,sizeof(char),524288,fp2); printf("%d\n",res); res=send(c,(char *)&data,res,0); printf("%d\n",res); if(res==SOCKET_ERROR) error("ファイル送るエラー2\n"); header2.fsize=header2.fsize-524288; } } 受信側はこのようにしてみました。 while(header.fsize>0){ if(header.fsize<=524288){ nFileSize=header.fsize; pFileBuffer=(char *)calloc(nFileSize,sizeof(char)); res=recv(finger, pFileBuffer, nFileSize, 0); if(res==SOCKET_ERROR) {error("ファイル受信エラー2\n"); break;} res=fwrite(pFileBuffer,sizeof(char),res,fp); break; } else{ pFileBuffer=(char *)calloc(524288,sizeof(char)); res=recv(finger,pFileBuffer,524288,0); if(res==SOCKET_ERROR){error("ファイル受信エラー2\n");break;} res=fwrite(pFileBuffer,sizeof(char),res,fp); printf("%d\n",res); header.fsize=header.fsize-524288; } で、分かったことがひとつあります。それは、ほかの人とファイルの送受信をおこなったときに、失敗したときに受信側にできる、ファイルの容量が違うということです。 もし、どこかまちがっていたら、普通、同じところでとまるので、できるファイルは同じのような気がするのですが・・。 ちなみに、15kバイトぐらいの小さいファイルのやり取りはできます。1Mをこえるとダメみたいです。 アドバイスよろしくおねがいします。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.