掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
バイナリファイルの転送 (ID:58266)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
返信おくれてすみません。 送信側のコードは FILE *fp; char data[100000]; char filename[1024]; long size; char header[256]={0}; fp=fopen(filename,"rb"); if(fp==NULL){ printf("ファイルのオープン失敗\n"); } else{ printf("ファイルオープンできた\n"); } size=fread(data,sizeof(char),5000,fp); sprintf(header,"%d",size); res=send(c,(char *)&header,sizeof(header),0); if(res==SOCKET_ERROR) error("ファイル送るエラー\n"); res=send(c,(char *)&data,size,0); if(res==SOCKET_ERROR) error("ファイル送るエラー2\n"); fclose(fp); このようにしていて、受信側は FILE *fp; int nFileSize; char *pFileBuffer; char header[256] = {0}; res=recv(c, header, sizeof(header), 0); if(res==SOCKET_ERROR) {error("ファイル受信エラー\n"); break;} nFileSize = atoi(header); pFileBuffer=(char *)calloc(nFileSize,sizeof(char)); res=recv(c, pFileBuffer, nFileSize, 0); if(res==SOCKET_ERROR) {error("ファイル受信エラー2\n"); break;} fp=fopen("test.txt","wb"); res=fwrite(pFileBuffer,sizeof(pFileBuffer),nFileSize,fp); fclose(fp); このようにしました。KINGさんがおっしゃったように、fwriteの第3引数のnFileSizeを20にしてやってみましたが、ファイルはフォルダの中に作られているのですが、0バイトになっていました。戻り値は20になっていました。 ファイルが作られているのは、fopenでひらこうとしているファイルがないから、勝手に空のファイルを作っただけだとおもいます。 受信側であいうえおかきくけこォォォォ・となっているので、一応送信はできているとおもいます。たぶん受信側がまちがっているのかと・・。 みなさんアドバイスよろしくおねがいします。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.