📄 miniweb.c
字号:
///////////////////////////////////////////////////////////////////////////////// http.c//// MiniWeb sample utility ///////////////////////////////////////////////////////////////////////////////#include <stdio.h>#include <string.h>#include "httppil.h"#include "httpapi.h"const char *pageHead="\<html><body>\<table border=1 cellpadding=0 cellspacing=0 width=244>";const char *pageTemplate="<tr><td width=150>%s</td><td width=150>%d</td></tr>";const char *pageTail="</table></body></html>";int urlProcStats(HttpSocket* phsSocket, char *pchRequest){ HttpStats *stats=mwGetHttpStats(); char *pBuf=phsSocket->pucData; int iDataLen; //generate page iDataLen=sprintf(pBuf,pageHead); iDataLen+=sprintf(pBuf+iDataLen,pageTemplate,"Current time:",gettime()); iDataLen+=sprintf(pBuf+iDataLen,pageTemplate,"Server uptime:",gettime()-stats->startTime,pchRequest); iDataLen+=sprintf(pBuf+iDataLen,pageTemplate,"Requests:",stats->reqCount); iDataLen+=sprintf(pBuf+iDataLen,pageTemplate,"File sent:",stats->fileSentCount); iDataLen+=sprintf(pBuf+iDataLen,pageTemplate,"Bytes sent:",stats->fileSentBytes); iDataLen+=sprintf(pBuf+iDataLen,pageTail); //return data to server phsSocket->iDataLength=iDataLen; phsSocket->hftFileType=HTTPFILETYPE_HTML; phsSocket->hcsSource=HTTPSRC_MEM; return 1;}int stbWebSubstCallback(SubstParam* sp){ char *p=sp->pchParamName; int value; HttpStats *stats; if (!strncmp(p,"stats.",6)) { stats=mwGetHttpStats(); p+=6; if (!strcmp(p,"reqCount")) { value=stats->reqCount; } else if (!strcmp(p,"fileSentCount")) { value=stats->fileSentCount; } else if (!strcmp(p,"fileSentBytes")) { value=stats->fileSentBytes; } else if (!strcmp(p,"upTime")) { value=gettime()-stats->startTime; } else { return 0; } sprintf(sp->chParamValue,"%d",value); return 1; } return 0;}int main(int argc,char* argv[]){ int i; httpParam param={80,"webroot"}; //parsing command line arguments for (i=1;i<argc;i++) { if (argv[i][0]=='-') { switch (argv[i][1]) { case 'p': i++; if (i<argc) param.httpPort=atoi(argv[i]); break; case 'd': i++; if (i<argc) param.webPath=argv[i]; break; } } } //register page variable substitution callback //mwSubstRegister(stbWebSubstCallback); //register URL preprocessor callbacks mwUrlProcessorRegister("~stats",&urlProcStats); //start server printf("Starting MiniWeb on port %d\n",param.httpPort); if (!mwServerStart(¶m)) { printf("Failed to launch miniweb\n"); }#ifndef NOTHREAD getchar();#endif //shutdown server mwServerShutdown(); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -