📄 servlet.c
字号:
#include "server.h"void doAction(HTTP_REQ *http_req,int client_sockfd) { char* param; char json[TEXT_SIZE]; char text_content[TEXT_SIZE]; char tmp[50]; int number; int ret; int status[LED_NUM]; int i=0; char* action=http_req->req_url; if(strcmp(action,"turn_on")==0) { //开灯 param=getParameter(http_req,"index"); number=atoi(param); printf("led number %d\n",number); ret=turn_on(number); if(ret==1) sprintf(json,"\"success\":true"); else sprintf(json,"\"success\":false"); }/* else if(strcmp(action,"turn_off")==0) { //关灯 param=getParameter(http_req,"index"); number=atoi(param); printf("led number %d\n",number); ret=turn_off(number); if(ret==1) sprintf(json,"\"success\":true"); else sprintf(json,"\"success\":false"); }*/ else if(strcmp(action,"get_status")==0) { //当前所有灯的状态 printf("get_status\n"); ret=get_status(status); sprintf(json,"{\"status\":["); for(i=0;i<LED_NUM;i++) { if(i!=LED_NUM-1) sprintf(tmp,"{\"led\":%d},",status[i]); else sprintf(tmp,"{\"led\":%d}],\"success\":true}",status[i]); strcat(json,tmp); } } else if(strcmp(action,"get_history")==0) { //LED亮灭的历史 printf("get_history\n"); ret=get_history(text_content); sprintf(json,"%s",text_content); } else if(strcmp(action,"get_log")==0) { //操作日志 printf("get_log\n"); ret=get_log(text_content); sprintf(json,"%s",text_content); } else if(strcmp(action,"command")==0){ //执行一些列的开灯 param=getParameter(http_req,"command"); printf("param %s\n",param); ret=command(param); sprintf(json,"{\"command\":false}"); } send(client_sockfd, json , strlen(json), 0); }char *getParameter(HTTP_REQ *http_req,char* name) { int i; for(i=0;i<http_req->param_count;i++) { if(strcmp(http_req->params[i].name,name)==0) { return http_req->params[i].value; } } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -