基于EPOLL写的HTTP服务器(加入了线程池)(四)

2012-08-26 14:11:58 · 作者: · 浏览: 7468
bsp;fseek(fp,0,SEEK_SET);
            content=(char *)malloc(file_size+1);
            response=(char*)malloc(200);
            fread(content,file_size,1,fp);
              content[file_size]=0;
              sprintf(response,"HTTP/1.1 200 OK\r\nContent-Length:%d\r\nContent-Type:%s\r\n\r\n",file_size,get_type(url,type));
             // printf("HTTP/1.1 200 OK\r\nContent-Type:%s\r\nContent-Length:%d\r\n\r\n%s",get_type(url,type),file_size,content);
              write(clientFd,response,strlen(response));
              write(clientFd,content,file_size);
              free(content);
              free(response);

                              }
                           }
              else if(len==0)
                                               {
                                                 //触发了EPOLL事件,却没有读取,表示断线
                   //printf("Client closed at %s\n",inet_ntoa(clientAddr.sin_addr));
                   epoll_ctl(epFd,EPOLL_CTL_DEL,clientFd,&ev);
                   close(clientFd);
                   int i=thread_para[3];
               &