我发送一个图片,接收完后,在客户端和服务器端没有关闭之前,打开此图片显示无法读取。当关闭客户端和服务器端后,就可以正常打开了。为什么?
客户端发送代码:FILE *pRead;
pRead=fopen("f:\\1.jpg","rb+");
while(!feof(pRead))
//while(fread(BUFFER,1,1024,pRead))
{
fread(BUFFER,1,1024,pRead);
clientStream.send_n(BUFFER,sizeof(BUFFER));
memset(BUFFER,0,sizeof(BUFFER));
}
fclose(pRead);
memset(BUFFER,0,sizeof(BUFFER));
strcpy(BUFFER,"END");cout<<BUFFER;
clientStream.send_n(BUFFER,sizeof(BUFFER));
服务器端接收代码: FILE *pWrite;
char BUFFER[1024];
memset(BUFFER,0,sizeof(BUFFER));
pWrite=fopen("d:\\1.jpg","wb+");
while(severStream.recv_n(BUFFER,sizeof(BUFFER))!=-1)
{
if(strcmp(BUFFER,"END")!=0)
{
fwrite(BUFFER,1024,1,pWrite);
memset(BUFFER,0,sizeof(BUFFER));
}
客户端发送代码:FILE *pRead;
pRead=fopen("f:\\1.jpg","rb+");
while(!feof(pRead))
//while(fread(BUFFER,1,1024,pRead))
{
fread(BUFFER,1,1024,pRead);
clientStream.send_n(BUFFER,sizeof(BUFFER));
memset(BUFFER,0,sizeof(BUFFER));
}
fclose(pRead);
memset(BUFFER,0,sizeof(BUFFER));
strcpy(BUFFER,"END");cout<<BUFFER;
clientStream.send_n(BUFFER,sizeof(BUFFER));
服务器端接收代码: FILE *pWrite;
char BUFFER[1024];
memset(BUFFER,0,sizeof(BUFFER));
pWrite=fopen("d:\\1.jpg","wb+");
while(severStream.recv_n(BUFFER,sizeof(BUFFER))!=-1)
{
if(strcmp(BUFFER,"END")!=0)
{
fwrite(BUFFER,1024,1,pWrite);
memset(BUFFER,0,sizeof(BUFFER));
}
2. fclose(最后调用)
都可以。