?? 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 + -