- 1、本文档共129页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
void sigalrm(int signo) //信号报警退出函数 { exit(0); } int HandleConnect(int fd) //连接处理函数 { FILE *f;? char buf[160]; char buf1[160];? f = fdopen(fd,a+); if (!f) { fprintf(stderr, httpd: Unable to open httpd input fd, error %d\n, errno); alarm(TIMEOUT); close(fd); alarm(0); return 0; } setbuf(f, 0);? alarm(TIMEOUT);? if (!fgets(buf, 150, f)) { //读连接,如出错提示 fprintf(stderr, httpd: Error reading connection, error %d\n, errno); fclose(f); alarm(0); return 0; } alarm(0);? referrer[0] = \0; content_length = -1; alarm(TIMEOUT); //读下一行进行解析 while (fgets(buf1, 150, f) (strlen(buf1) 2)) { alarm(TIMEOUT); if (!strncasecmp(buf1, Referer:, 8)) { char * c = buf1+8; while (isspace(*c)) c++; strcpy(referrer, c); } else if (!strncasecmp(buf1, Referrer:, 9)) { char * c = buf1+9; while (isspace(*c)) c++; strcpy(referrer, c); } else if (!strncasecmp(buf1, Content-length:, 15)) { content_length = atoi(buf1+15); } } alarm(0); if (ferror(f)) { fprintf(stderr, http: Error continuing reading connection, error %d\n, errno); fclose(f); return 0; } ParseReq(f, buf);?//解析HTTP请求并输出 alarm(TIMEOUT); fflush(f); fclose(f); alarm(0); return 1; } void* key(void* data) //键盘处理函数 { int c; for(;;){ c=getchar(); if(c == q || c == Q){ KEY_QUIT=1; exit(10); break; } } } int main(int argc, char *argv[]) //主函数定义 { int fd, s; int len; volatile int true = 1; struct sockaddr_in ec; struct sockaddr_in server_sockaddr; pthread_t th_key; //声明了一个线程 void * retval;? ?//获取异常信号定义 signal(SIGCHLD, SIG_IGN); signal(SIGPIPE, SIG_IGN); signal(SIGALRM, sigalrm);? chroot(HTTPD_DOCUMENT_ROOT);//设置工作根目录 printf(starting httpd...\n); printf(press q to quit.\n); if (argc 1 !strcmp(argv[1], -i)) { //从inted服务器启动,处理来自标准输入的连接 fclose(stderr); HandleConnect(0);
您可能关注的文档
- 前列地尔注射液剖析.ppt
- 前列地尔注射液在心血管疾病的应用剖析.ppt
- 前列腺MRI剖析.doc
- 人际吸引(人际关系)剖析.ppt
- 前列腺癌的放射治疗剖析.ppt
- 前列腺的影像诊断剖析.ppt
- 人教《春雨的色彩》剖析.ppt
- 人教《圆》的导学案完成四川城区学校剖析.doc
- 前轮毂轴承孔组合镗床设计剖析.docx
- 前期物业基础知识培训剖析.ppt
- 汽车4S店员工内训课件07奥迪4S店新员工培训.pdf
- 辽宁省第二届职业技能大赛(轨道车辆技术赛项)理论参考试题库(含答案).pdf
- 2024年第四届全国工业设计职业技能大赛决赛(包装设计师)理论考试题库(含答案).pdf
- 精品解析:2022年广西壮族自治区学业水平考试押题预测卷 (一)历史试题(原卷版).docx
- 2024版《立体构成》全套课件完整版.ppt
- 《机上应急医疗》习题及答案.docx
- 2024年儿童保健技能大赛理论考试题库500题(含答案).pdf
- 计算机整机装配调试员技能竞赛备考试题库(含答案).pdf
- 《机床电气控制与PLC》期末试卷-A卷及答案.doc
- C++程序设计教程课件-C++多态与虚函数课件.pdf
文档评论(0)