HTTP 服务器(C语言)传输图片出现问题

我自己用C语言写一个HTTP服务器,但是在使用fopen,fread时候出现问题。传输不了图片。

void http_send_static(int sock_client,char *datapath){

char HTTP_HEADER[1024],HTTP_INFO[1024];

int len;

FILE *fd;

printf("%s\n",datapath);

if((fd=fopen(datapath,"rb"))<0){

printf("error open\n");

}

if(fd == NULL)

printf("Open file Error!");

char buff[1024];

while((len=fread(buff,1,sizeof(buff),fd))>0){

printf(" buff %ld \n",sizeof(buff));

int fd;

fd=open(datapath,O_RDONLY);

char buff[1024];

while ((len=read(fd,buff,1024))>0){

char *datatype;

if(strstr(datapath,".html")){

datatype=http_content_type[0].value;//text/html

}else{

datatype=http_content_type[2].value;//image/jpeg

}

printf("datatype %s\n",datatype);

sprintf(HTTP_HEADER,http_res_tmpl,len,datatype);

len = sprintf(HTTP_INFO,"%s%s",HTTP_HEADER,buff);

send(sock_client,HTTP_INFO,len,0);

}

//fclose(fd);

}

浏览器打开网页时,图片显示错误,还有一部分的html的代码也没有传递成功。

![图片描述][1]

但是从控制台来看,已经把图片传输了。
图片描述

回答:

因为HTTP_INFO只是1024的大小。所以才会出现这个问题。

以上是 HTTP 服务器(C语言)传输图片出现问题 的全部内容, 来源链接: utcz.com/p/194788.html

回到顶部