我正在尝试编写一个从文件(任何类型)读取并在套接字上写入文件数据(二进制数据)的 c++ 代码,因此接收器必须获取这些数据并创建一个文件,我应该看到相同的数据相同的格式,问题是数据仍然是二进制并作为二进制数据写入文件!如果在没有在网络上发送的情况下测试代码,它将运行良好!任何想法 ?提前致谢 。注意,如果它影响这个问题,我使用的是 Ubuntu 11.10 ..
这是客户端的代码:
filer=fopen("a.doc","rb");
fseek (filer , 0 , SEEK_END);
long size;
size = ftell (filer);
rewind (filer);
buffer = (char*) malloc (sizeof(char)*size);
numr=fread(buffer,1,size,filer);
fclose(filer); //some socket code
char buffer2[size];
strcpy(buffer2 , buffer);
n = write(sockfd,buffer2,size);
对于服务器端:
n = read(sock,buffer,length);
FILE * filew;
int numw;
filew=fopen("acopy.doc","wb");
numw=fwrite(buffer,1,len,filew);
fclose(filew);