嵌入式Linux网络应用开发(新).ppt

  1. 1、本文档共129页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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);

文档评论(0)

四月 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档