0

我的程序应该模拟一个简单的 httpServer 来回复客户的请求。它应该回答 .html 和 .html.gz 请求。我的问题是当我收到 .gz 请求时。目前 execute_script 正在处理该请求并解压缩文件,但我无法将其发送回客户端。我的代码有什么问题?

void execute_script(int socket)
{

    FILE *gp;
    char temp[SIZE_BUF];

    // Searchs for page in directory htdocs
    sprintf(buf_tmp,"htdocs/%s",req_buf);
    sprintf(temp, "gunzip -k %s", buf_tmp);

    // Verifies if file exists
    if((gp=popen(temp,"r"))==NULL) {
        // Page not found, send error to client
        printf("send_page: page %s not found, alerting client\n",buf_tmp);

    }
    else {
        // Page found, send to client 

        while(fgets(buf_tmp,SIZE_BUF,gp)!=NULL)
            send(socket,buf_tmp,strlen(buf_tmp),0);

        // Close file
        pclose(gp);
    }



    return;
}
4

0 回答 0