掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
バイナリファイルの転送 (ID:58272)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
返信ありがとうございます。 送る側のプログラムは char data[1000000]; while(header2.fsize>0){ if(header2.fsize<=1000000){ res=fread(data,sizeof(char),header2.fsize,fp2); send(c,(char *)&data,header2.fsize,0); if(res==SOCKET_ERROR) error("ファイル送るエラー2\n"); break; } else{ fread(data,sizeof(char),1000000,fp2); res=send(c,(char *)&data,1000000,0); if(res==SOCKET_ERROR) error("ファイル送るエラー2\n"); header2.fsize=header2.fsize-1000000; fseek(fp2,1000000L,SEEK_CUR); } } fclose(fp2); printf("ファイル送信完了\n"); } このようにしています。 ですが、1Mをこえる画像を送ると、サイズ2Mぐらいのものが受信側では4Mぐらいになっています。そして、画像の真ん中のところが黒くなっています(送信できていないのか?)。真ん中以外のところはちゃんと画像がみれます。 デバッガでしらべてみたのですが、2Mのものでやってみると、最後に、上側のif文のfreadが返す値をresに代入するところで、resが0となっています。header2.fsizeは正常にへっていっています。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.