用C写的http服务器怎么返回图片给浏览器呢
我用C在linux下写了个HTTP服务器
现在可以返回静态的HTML了 可以是怎么返回图片呢
一下是核心代码
求各位指教啊
while(1)
{
socklen_t len=sizeof(struct sockaddr_in);
int client = accept(socketd, (struct sockaddr*)&cliaddr, &len);
if(read(client, buffer, BUFFSIZE) != -1)
{
if (chdir(wwwroot)
printf("chdir error\n");
exit(0);
}
sscanf(buffer, "%[^ ] %[^ ] %[^ ]", method, path, protocol);
printf("%s\n", path);
if (fp = fopen((path + 1), "rb")){
int ich;
int i=0;
char buff[1024000];
memset(buff, 0, sizeof(buff));
while ((ich = getc(fp)) != EOF )
buff[i++] = ich;
fclose(fp);
strcpy(resCon, send_header(200, "OK", get_mime_type((path + 1)), strlen(buff), resCon));
// strcat(resCon, tmp);
strcat(resCon, buff);
printf("%s\n", resCon);
write(client, resCon, sizeof(resCon));
}
memset(resCon, 0, sizeof(resCon));
}
close(client);
}
C C++ socket Linux
------解决方案--------------------
浏览器请求图片的时候把图片一个字节一个字节发过去就OK了 很简单
网页里有图片的时候浏览器会自动请求图片
------解决方案--------------------
先open一个图片文件,然后获得这个图片的大小,fread进一个数组里
然后用socket把这个数组发过去就行了