5,530
社区成员
发帖
与我相关
我的任务
分享
FILE * fstream = fopen(FileList[i].fileurl.c_str(), "rb");
if ( NULL == fstream )
{
closesocket(ClientSocket);
return 0;
}
fseek(fstream, 0L, SEEK_END);
long size = ftell(fstream);
fclose(fstream);
std::stringstream stream;
stream << "HTTP/1.1 200 OK\r\n";
stream << "Server: Apache-Coyote/1.1\r\n";
stream << "Accept-Ranges: bytes\r\n";
stream << "ETag: W/\"68789-1493185830000\r\n";
stream << "Last-Modified: Wed, 26 Apr 2017 05:50:30 GMT\r\n";
stream <<"Content-Type: image/png\r\n";
stream << "Content-Length:" << size<<"\r\n";
stream << "Date: Fri, 21 Jul 2017 07:45:45 GMT\r\n\r\n";
char szResponse[204800];
memset(szResponse,0,204800);
stream.read(szResponse,stream.tellp());
char temp[512];
char buff[409600];
memset(buff,0,409600);
int ich = 0;
int j = 0;
FILE * fp = fopen(FileList[i].fileurl.c_str(), "rb");
while((ich = getc(fp))!= EOF)
{
buff[j++] = ich;
}
fclose(fp);
strcat(szResponse,buff);
const int bufferSize = 1024;
char buffer[bufferSize] = {0};
streamsize readLen = 0;
ifstream srcFile;
srcFile.open(FileList[i].fileurl.c_str(), ios::binary);
if (!srcFile)
{
return 0 ;
}
while (!srcFile.eof())
{
srcFile.read(buffer, bufferSize);
readLen = srcFile.gcount();
}
srcFile.close();
send(ClientSocket,szResponse,strlen(szResponse),0);
closesocket(ClientSocket);