From f7a4571a2663f58083b507448c9447758bcc33c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8B=93=E8=B7=8B=E9=98=BF=E7=A7=80?= <44971298+forthespada@users.noreply.github.com> Date: Thu, 28 Apr 2022 13:57:45 +0800 Subject: [PATCH 1/9] Update README.md --- README.md | 2 +- httpd.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 77f9016..bc1fb54 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ #### 2、其余 -如果还有对该项目有疑问的同学可以加我个人微信:**coderxiu1**,我会在工作之余进行免费答疑。 +如果还有对该项目有疑问的同学可以加我个人微信:**coderxiu2**,我会在工作之余进行免费答疑。 最好在看过文末的两本书即《TCPIP网络编程》和《Linux高性能服务器编程》或者对于C++网络编程有一定了解后,再来进行实践本项目。 diff --git a/httpd.c b/httpd.c index 7b4690f..7378e10 100644 --- a/httpd.c +++ b/httpd.c @@ -17,7 +17,7 @@ -#define SERVER_STRING "Server: SongHao's http/0.1.0\r\n"//定义个人server名称 +#define SERVER_STRING "SERVICE:TJQ's http/0.1.0\r\n"//定义个人server名称 void *accept_request(void* client); From e8336f9de932238873fd40eecf67f434e3e5efd0 Mon Sep 17 00:00:00 2001 From: seer <2290569893@qq.com> Date: Mon, 20 Nov 2023 17:22:03 +0800 Subject: [PATCH 2/9] changge makefile --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index fe2a772..f7c16a5 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ all: myhttp myhttp: httpd.c - gcc -W -Wall -o myhttp httpd.c -lpthread + gcc -W -Wall -o1 myhttp httpd.c -lpthread clean: rm myhttp From cc40e882f37692ac377762fe15d245e812f71dc7 Mon Sep 17 00:00:00 2001 From: seer <2290569893@qq.com> Date: Mon, 20 Nov 2023 17:22:03 +0800 Subject: [PATCH 3/9] changge makefile --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index fe2a772..c2be892 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ all: myhttp myhttp: httpd.c - gcc -W -Wall -o myhttp httpd.c -lpthread + gcc -W -Wall -o3 myhttp httpd.c -lpthread clean: rm myhttp From 919702fbbb8e18ad13907899bc20c0029a320d50 Mon Sep 17 00:00:00 2001 From: seer <2290569893@qq.com> Date: Sun, 24 Dec 2023 19:45:53 +0800 Subject: [PATCH 4/9] =?UTF-8?q?C++=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 55 ++++++ .vscode/tasks.json | 30 ++++ Makefile | 4 +- httpd | Bin 0 -> 359240 bytes httpd.c | 10 +- httpd.cc | 377 ++++++++++++++++++++++++++++++++++++++++++ httpd.h | 41 +++++ httpdocs/post.cgi | 0 myhttp | Bin 0 -> 52136 bytes run.sh | 4 + 10 files changed, 512 insertions(+), 9 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 .vscode/tasks.json create mode 100755 httpd create mode 100644 httpd.cc create mode 100644 httpd.h mode change 100644 => 100755 httpdocs/post.cgi create mode 100755 myhttp create mode 100755 run.sh diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..2684f5e --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,55 @@ +{ + "files.associations": { + "array": "cpp", + "atomic": "cpp", + "bit": "cpp", + "*.tcc": "cpp", + "cctype": "cpp", + "chrono": "cpp", + "clocale": "cpp", + "cmath": "cpp", + "codecvt": "cpp", + "cstdarg": "cpp", + "cstddef": "cpp", + "cstdint": "cpp", + "cstdio": "cpp", + "cstdlib": "cpp", + "cstring": "cpp", + "ctime": "cpp", + "cwchar": "cpp", + "cwctype": "cpp", + "deque": "cpp", + "unordered_map": "cpp", + "vector": "cpp", + "exception": "cpp", + "algorithm": "cpp", + "functional": "cpp", + "iterator": "cpp", + "memory": "cpp", + "memory_resource": "cpp", + "numeric": "cpp", + "optional": "cpp", + "random": "cpp", + "ratio": "cpp", + "string": "cpp", + "string_view": "cpp", + "system_error": "cpp", + "tuple": "cpp", + "type_traits": "cpp", + "utility": "cpp", + "fstream": "cpp", + "initializer_list": "cpp", + "iomanip": "cpp", + "iosfwd": "cpp", + "iostream": "cpp", + "istream": "cpp", + "limits": "cpp", + "new": "cpp", + "ostream": "cpp", + "sstream": "cpp", + "stdexcept": "cpp", + "streambuf": "cpp", + "thread": "cpp", + "typeinfo": "cpp" + } +} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..3dec799 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,30 @@ +{ + "tasks": [ + { + "type": "cppbuild", + "label": "C/C++: g++ 生成活动文件", + "command": "/usr/bin/g++", + "args": [ + "-fdiagnostics-color=always", + "-g", + "${file}", + "-o", + "${fileDirname}/${fileBasenameNoExtension}", + "-lpthread", + "-std=c++17" + ], + "options": { + "cwd": "${fileDirname}" + }, + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + }, + "detail": "调试器生成的任务。" + } + ], + "version": "2.0.0" +} \ No newline at end of file diff --git a/Makefile b/Makefile index fe2a772..5098fd3 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ all: myhttp -myhttp: httpd.c - gcc -W -Wall -o myhttp httpd.c -lpthread +myhttp: httpd.cc + g++ -std=c++17 -o myhttp httpd.cc -lpthread clean: rm myhttp diff --git a/httpd b/httpd new file mode 100755 index 0000000000000000000000000000000000000000..d50e68612ad8c491f0d0bc7e3416a3b582d243fd GIT binary patch literal 359240 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,optlen); + + //初始化服务端ip端口信息 + memset(&name,0,sizeof(name)); + name.sin_family=AF_INET; + name.sin_port=htons(*port); + name.sin_addr.s_addr=htonl(INADDR_ANY); + + //将端口ip和服务端套接字绑定 + if (bind(httpd, (struct sockaddr *)&name, sizeof(name)) < 0) + { + perror("bind"); + } + else + { + //传入的端口绑定失败,动态绑定系统分配的端口 + socklen_t namelen = sizeof(name); + if (getsockname(httpd, (struct sockaddr *)&name, &namelen) == -1) + error_die("getsockname"); + + // 将获取到的端口号存储在传入的 port 变量中 + *port = ntohs(name.sin_port); + } + //监听,最多等待10个链接 + if (listen(httpd, 10) < 0) error_die("listen"); + return (httpd); +} + +void *accept_request(void * from_client) +{ + int client=*reinterpret_cast(from_client); + std::string buf; + int numchars; + std::string method; + std::string url; + std::string path; + char *query_string=nullptr; + struct stat st; + int cgi = 0; + //按行分隔接受到的数据 + numchars=get_line(client,buf,1024); + int i=0,j=0; + while(!std::isspace(static_cast(buf[j]))) + { + method[i++]=buf[j++]; + } + method[i]='\0'; + if(strcasecmp(method.c_str(),"get")&&strcasecmp(method.c_str(),"post")) + { + unimplemented(client); + return static_cast(0); + } + i=0; + while(std::isspace(static_cast(buf[j]))) j++;//跳过空格 + while(!std::isspace(static_cast(buf[j]))&&j<1024)//获取url + { + url[i++]=buf[j++]; + } + //url[i]='\0'; + std::cout< 0) && strcmp("\n", buf.c_str())) + { + numchars = get_line(client, buf, 1024); + } + } + else + { + numchars = get_line(client, buf, 1024); + while ((numchars > 0) && strcmp("\n", buf.c_str())) + { + buf[15] = '\0'; + if (strcasecmp(buf.c_str(), "Content-Length:") == 0) + Content_length = atoi(&(buf[16])); + + numchars = get_line(client, buf, 1024); + } + + if (Content_length == -1) { + bad_request(client); + return; + } + } + std::ostringstream response; + response<<"HTTP/1.0 200 OK\r\n"; + + if(pipe(cgi_output)<0) + { + cannot_execute(client); + return; + } + if(pid=fork()<0) + { + cannot_execute(client); + return; + } + if(pid==0)//子进程:运行cgi脚本 + { + char meth_env[255]; + char query_env[255]; + char length_env[255]; + + dup2(cgi_output[1], 1); + dup2(cgi_input[0], 0); + + + close(cgi_output[0]);//关闭了cgi_output中的读通道 + close(cgi_input[1]);//关闭了cgi_input中的写通道 + + + sprintf(meth_env, "REQUEST_METHOD=%s", method.c_str()); + putenv(meth_env); + + if (strcasecmp(method.c_str(), "GET") == 0) { + //存储QUERY_STRING + sprintf(query_env, "QUERY_STRING=%s", query_string); + putenv(query_env); + } + else { /* POST */ + //存储CONTENT_LENGTH + sprintf(length_env, "CONTENT_LENGTH=%d", Content_length); + putenv(length_env); + } + + + execl(path.c_str(), path.c_str(), NULL);//执行CGI脚本 + exit(0); + } + else + { + close(cgi_output[1]); + close(cgi_input[0]); + if (strcasecmp(method.c_str(), "POST") == 0) + + for (i = 0; i < Content_length; i++) + { + + recv(client, &c, 1, 0); + + write(cgi_input[1], &c, 1); + } + + + + //读取cgi脚本返回数据 + + while (read(cgi_output[0], &c, 1) > 0) + //发送给浏览器 + { + send(client, &c, 1, 0); + } + + //运行结束关闭 + close(cgi_output[0]); + close(cgi_input[1]); + + + waitpid(pid, &status, 0); + } +} + +void bad_request(int client) +{ + std::string buf; + buf+="HTTP/1.0 400 BAD REQUEST\r\n"; + buf+="Content-type: text/html\r\n"; + buf+="\r\n"; + buf+="

Your browser sent a bad request, "; + buf+="such as a POST without a Content-Length.\r\n"; + send(client,buf.c_str(),buf.length(),0); +} +void cannot_execute(int client) +{ + std::string buf; + buf+="HTTP/1.0 500 Internal Server Error\r\n"; + buf+="Content-type: text/html\r\n"; + buf+="\r\n"; + buf+="

Error prohibited CGI execution.\r\n"; +} +void serve_file(int client,const std::string& path) +{ + std::fstream file(path); + if(!file.is_open()) + { + not_found(client); + } + else + { + headers(client); + cat(client,file); + } + file.close(); +} +void headers(int client) +{ + std::ostringstream response; + response<<"HTTP/1.0 200 OK\r\n"; + response<<"SERVICE:TJQ's http/0.1.0\r\n"; + response<<"Content-Type: text/html\r\n"; + response<<"\r\n"; + std::string s=response.str(); + send(client,s.c_str(),s.length(),0); +} +void cat(int client,std::fstream &file) +{ + const int bufsize=1024; + char buf[bufsize]; + while(file.read(buf,bufsize)) + { + send(client,buf,file.gcount(),0); + } + send(client,buf,file.gcount(),0); + file.close(); +} +void not_found(int client) +{ + std::ostringstream response; + response<<"HTTP/1.0 404 NOT FOUND\r\n"; + response<<"SERVICE:TJQ's http/0.1.0\r\n"; + response<<"Content-Type: text/html\r\n"; + response<<"\r\n"; + + response<<" 404 not found\r\n"; + response<<"your request source is not found\r\n"; + response<<"\r\n";//html解释器会忽略中间出现的换行符和空格 + std::string s=response.str(); + send(client,s.c_str(),s.length(),0); +} +void unimplemented(int client) +{ + std::ostringstream response; + //http响应头 + response<<"HTTP/1.0 501 Method Not Implemented\r\n"; + response<<"Server: YourServerName\r\n"; + response<<"Content-Type: text/html\r\n"; + response<<"\r\n"; + //http响应体 + response<<"Method Not Implemented\r\n"; + response<<"

HTTP request method not supported!!!.

\r\n"; + std::string resstr; + resstr=response.str(); + send(client,resstr.c_str(),resstr.length(),0); +} +int get_line(int sock,std::string &buf,int size) +{ + int i=0; + char c='\0'; + int n; + //处理\r\n和\r处理成\n,统一报文协议格式 + while((i0) + { + if (c == '\r') + { + n=recv(sock,&c,1,MSG_PEEK);//预读下一个字符 + if(n>0&&(c=='\n')) recv(sock,&c,1,0); + else c='\n'; + } + buf[i++]=c; + } + else c='\n'; + } + buf[i]='\0'; + return i; +} +int main() +{ + int server_sock=-1; + u_short port=6379; + int client_sock=-1; + struct sockaddr_in client_name; + socklen_t client_name_len=sizeof(client_name); + server_sock=startup(&port); + std::cout<<"http server_sock is"<(&client_name),&client_name_len); + std::cout<<"New connection.... ip is"<(&client_sock)); + newthread.detach(); + //已经有异常的情况下使用throw抛出 + } + catch(const std::system_error &e) + { + std::cerr<<"caught system_error"< +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void error_die(const char * msg); + +int startup(u_short *port); + +void *accept_request(void * from_client); + +void execute_cgi(int client,const std::string &path, + const std::string &method,const char *query_string); + +void bad_request(int client); + +void cannot_execute(int client); + +void serve_file(int client,const std::string& path); + +void headers(int client); + +void cat(int client,std::fstream &file); + +void not_found(int client); + +void unimplemented(int client); + +int get_line(int sock,std::string &buf,int size); + diff --git a/httpdocs/post.cgi b/httpdocs/post.cgi old mode 100644 new mode 100755 diff --git a/myhttp b/myhttp new file mode 100755 index 0000000000000000000000000000000000000000..efcdd14dc4bff393d4412e696ff5aa668dfb2cc7 GIT binary patch literal 52136 zcmeHw3wTu3wf{*%Ao57!0~;0VprWV{GI>Bk112N`69^&Zq0vH5CX<0oNoK~(ObAw5 zY)s1-)1p_cwY0_7_Ht_<_TFl#6^ud&?WZlaXsO~Ay;>)N6{&5pMf3ly{W!Dd%sCP8 z{=e`4{XdR|b@p0ouf6u#Yp=b|K9Bi=t9EgETAC)03~ixCrPi4oQy~Z)yTl1Vg;uIf z!N1crhc+JNaSX@l6&!%dj|1t+FiYSw0I6OcomjwW9IZ(xH6%#&?2gh;a*BjnE-zEP zOgeSYKR6uhUjsH5@UnzzJ=R{U;5Wf1&*OLr)p}%`_${0szatq|Fl97t^8}8U^~hXQ zZ{z1Ue&awgbO?J&DD6o)(qE~trx`l97^Bgv=8qZkBi({r_bn=hHUhwcJLZ?Kbjt8~!V8>>snS=Smy-hi&jt z8~npI_{(hC{i_ZCZX5jfZ0z=&&A6OpV~35Hq*mj&#Rh+k%{czrM$eaQ@B=pZEjIZ3 zY{vJ$Z1~T$vBUK?{QtBWm-}q&{2d#6K4>!^FSL;pveD;|js3H+;8~4Vz{Wn$*x++) z^#8MsK6y6ydK){J+xW@dHvQUTWB*My{J*qmmtvs2=$H&RUCYxd zME*9DqqRfupRb2t_)&eV%qoG72=krfIp}?(6og@rNV6?xy8coxy;w z$X*Xs*KG$C5|q5&{aGx*2bL(PUG?cQsyp;qT= zy1u3>7|_EJPj^JuHT|Z>NN2dFG2(Q3J3QTbq}$_(-&A1>2UR+e$(}Jjgh(B z9CP)?2y}LlSOe)S(U%J?IhPA!3!(x4%~78oigef1HR`e=D8=o*)t+c)1P1N&MSL}l zPTl3IU)<9}QX3;>FmRVYfL5q+v~sGt7q@x5YnkS#EbX#d+9kEeu6h2j9t`;cybi2Y z#*O3;!nzjx-kvsY7>q@kub0Nu9}JwHvi@FI7u8(W=%2gB8;k}bOmur^eGkJo20Ozp zKa)*o5zd>iiBL7j2h_fkd{~RXAT4vMX039j)I7Dug@DFLF=j-krDZJ~xk+y-fGf`> z|F3KG7t?HU)q6WxF=2<3^y^Tqt9}`q6pfKmjIWN7_7&Fz{E=#-dne;EC2T?qgV4a# zFK%cIHtJ$xoQw#VqhZ-t?(Nk1pwVn9(rcjX3OH$3upKdnCZ)50O=?e@zsFgK^RQp{ zc6!2LJ+eOJ)BSpiE?(6Ojb|bEMdp&v^f>}WKdLrHquwhiZpmM7w zPxk7fv|YK<3`r{&72>CJ(4e$X0x;b@nS7Beqj$HGDHT3aYjE35vh1MPo6>6a(o(soMt9~H<(DaiBsQlrsaR+#7OGT!j<$*^Z%M~K zMLPC4(%D(2faA3Z?7uARiV!serF8sdvNG|?I+>tlXlDUWa?-Vl_@gtbN4QKaOPeIh zRG(;B_>b4iU^^j`fusMBu;Jib#FxQZPQ#ALOyq2|N8`X>{T1scAuH2nBM+s6=#;8S zdh|m7StO;zpij_x1$`r6&+)GzW1OT_f=+eTKlc;JJ4>q<j)&)zY-1V&75XKeveEkDKtC;Lj5Is^sqwBL;_!Sl-DnWU!mZ)5Ap(Bk7{;+z!Sk8PN&6H$wIPoK3ZBMH9)}b> zwJndhf|tHRw4(|h6WKV9EBJ{97AIff1(H2U!DlJ>DGEMU!DlP@JO!Vl;2jEH`Ye%W zDtPs}w?M(G*RiDv{#-?Vg@T`|;N1%Td<9>x;PVuGi-NyE!M7^-3l)5ag1<tD6nv3_pQ+$kDj{eE3cf_)FIDh!6?}z)pQqs63cggq z*DLrk1>d6J=PUSD1^+1p-=W|aDEN?qU#Q@F75uddexrh~Q1F`+e5Hcltl+B@{QU~P zTETBs@Gb?vO~Ef!@Q*0?WeR?~g0EHZXHNhBu)tq)KKV~~-;pf$K<1xvfh;nS?)zQ(>&8$qx%CV8>j4~wz$3~tq%9IEk z8~LeGriAU-$b&|i5`tqRcNt|$1dff|W|S#N9UHmXDAU4!Y{X-fX~91>a-C78h5pz` zrBS8@{@94qC{to}Y-GAoriK34$k|3Yo0ZdyatK=j`z)53@T8)aJX(0`*$3my7z zlxcxO|BW&&Z0NsHrUecCH_Eh-q5npi7BKYRDAR=k`frqJAw&O-GA&@}zfq=z3*-MU z+5ZYwepQwc9inR~I$!~!c!2UMe{#9mR9W4}46{sL3E#8jSbD$g*LFE*8@n#xm5 zge`G3u&s6@VseG@gJZLKS zo5~wZ<*2FLWh(nj zGnH4VW#`*9vFASHj=kpYd;MsAQ|(~po-2`R3{F|Wz=D6rdN(??0af1H>>gZj7f#%R znRgHq+i+ksIvG8_0SiQY0F4g24pJ^P z?Ak}n1IrJ(2b=c|xDHgt_PS%wJx-OG80c{sR&)2D>(JwryzImuIyoHgg5=f1u0!b> z^xd2Db1moRLqN~{C(tq1Yflniyq7iqx_fZ>A;@L|+_B$+?OL!s6~E;6p-48g+KXi@ z-U;5rONL$hsTpXqU)16iJ`ZZ&@zI=nhERuk@^z~76jaOkx$8CF_8l;jd!Tvm>R38j z+ex_`ntBg4c~ev^K-KO*HE_5GqQ~3aMa9gFk<9qx;QaM2Y3N4xZAVIB9CvKTUhu2- zjys3k1O0>@&|>`u0o{ZBM+u<4%Q0*y=EBHSoXU#@qBx!x>qYS&Xwp60A4gp>*l_mUvH?>A~45N8AZbmsQ%GxT|ZbhrzR<~*k5?4%L; z+40fQ{vmG26}-Y=eOl~Z%bGW^nt21PEyhNT@&pmBR5X=lHeY$mSdqwv)Ra&fHGcf+u`}8wetvMymZw!j25V zc@xI5F$wvTVUh>`!Ax>5`PNx|%!X-)_t?~|R%@#G3 zUCVjQ+Q!^%n2nzS+orsc)#Nz|Lw+9$z>wcU;z)*kQyJW~V59oRl)VEI+%e{Ca9{E{ zSfKpcNM51@159-HFFW~A{OeF{QDr+-`8T7AGf`z{ za+Oz5g*rQj`~CR|eS46ClO79_EBu&OxP2&xc|}gb&u~e2xGrIfz8!4JMlWy=-b*In zjPBSAka#B8U5DqC^K2C4%9) zzr*P4(JCbx?Xp4J&d}tKyp7@beeY4_sXxGlm%D6V&ON&n+AW;cEonn%9msiX2(ge2 zvA1u>__! zC)v-lLE**0k}RRtlT6G00>Lx{CccIzBz_8OBA56O0)BkKF~))cjrGq$wZ0wnug1qV zQ7hA^6+kV?)L)GO9Oy4b4Vm>^3=IbQO9=y8QX(;lVMrwu@?nyJ{&HTJPSYddgXcgM zieZEOhp_O$*wxr3KwsIS6>oZ%aGV4|GpMJDx-T$l$y?ZHAnSYrR5?6F?ty!04pC*w zbOuX4)%dkj6&>&PhCsz_X;d^l#K} zDDZ7s{vGxWt%b0|k8>$#cNTL8;Q^P>C=L$hF%`-2gq|be- z3Cx2JXG*%9rI(Q6|4MTYxG0YEL_bn-xGWLJ<@}ieNrxvS@KVCdz|%?q1sc%7_{)%p zkWKM9DP;E@!PUeQDRJ2~L^WHOH{yJ-IlwO63tq1HLq69RQG zfqG7$el1aud$Djgs)XWi|3d2T8E`$p2HPEb5y%lj3Wg7GzB$=GGY)^!umhKJfJtFS zSPuE|1Jq#OZuiMs;QB=0mIMa35-3SC)vGU{KD zQ2#5?BYuIE`nXC#B#Z5MhGIhO(IEiSXzrwV{v>h{Eq)QjX=GP}#D=i2k5&3DS)7lL zz+gQ_TYX2%F`+mgVLv1jxLWjU>yzghp>4rvBj~ zgA`YMJd>M?Nkql-d67#Vj?Y6all79Kf~@um_|&K%>;K~|!>Z*_DLzc%Z`(~KRIG|C z-vX?Yu^k5y$>3A_094!3enbBeAlY^4KtItD{f+|2#D@&|A_*VJb@#o6D~xm8Y5NHI zD3EZf*;o%)HK5X&aj;%KN)nI^<6mYG(EbjE4{uSJpC`k{teJmJy-Ub_e1sc|F7ibP z&5S<}%OqdqpN#*^QHEi#WY-nkQ!bz}6izl+(krkTN!Sen`!?xj@NUJ83$n%^ldv(t z`&1J48v^@q686UedoRbbfge;o@P`TkE$tw!_!WTgz_l=sl?V0_9+zx_?H*o~9`tDZ z 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ⅅIXPp2GZr{w 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 OpXMB8rV6H__J06y=ya0+ literal 0 HcmV?d00001 diff --git a/run.sh b/run.sh new file mode 100755 index 0000000..a2de2ef --- /dev/null +++ b/run.sh @@ -0,0 +1,4 @@ +#!/bin/bash +make clean +make all +./myhttp From e0bb18f96cf3f782c1fd9c241fb68d61457895ed Mon Sep 17 00:00:00 2001 From: seer <2290569893@qq.com> Date: Mon, 25 Dec 2023 08:54:17 +0800 Subject: [PATCH 5/9] =?UTF-8?q?C++=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 9e10519..effc8e7 100644 --- a/README.md +++ b/README.md @@ -4,16 +4,7 @@ ### 1、简介 -#### 0、插入一条更新 - -给大家一个思路,我把基于C++版本的项目删除,只留下以前写的基于C的项目,如果能够在C的基础上将之改写为C++版本,就变成你的项目了。 - -按照 【2、编译】中的步骤还是可以顺利运行的,可以自行尝试~ - -#### 1、由来 - -该项目是基于C++ 实现的HTTP服务器,也就是那种烂大街的WebServe服务器,不过由于是自己动手做的,所以还是很有意义的就上传上来了。 - +个人修改的c++版本,与原版功能一致 ### 2、编译 @@ -50,13 +41,7 @@ sudo chmod +X post.cgi 依次输入下述命令即可。 -~~~c -cd ../ - -make - -./myhttp -~~~ +sh run.sh #### 3、整体过程图 From 35cb9cc0f75442c9551e1742f6b15f68bbd8f61b Mon Sep 17 00:00:00 2001 From: seer <2290569893@qq.com> Date: Mon, 25 Dec 2023 08:54:53 +0800 Subject: [PATCH 6/9] Lids00000122 --- myhttp | Bin 52136 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100755 myhttp diff --git a/myhttp b/myhttp deleted file mode 100755 index efcdd14dc4bff393d4412e696ff5aa668dfb2cc7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52136 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 z 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ⅅIXPp2GZr{w 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 OpXMB8rV6H__J06y=ya0+ From a2ecbf38d194f8d3c41071025b151489e2c295d3 Mon Sep 17 00:00:00 2001 From: seer <2290569893@qq.com> Date: Mon, 25 Dec 2023 08:57:48 +0800 Subject: [PATCH 7/9] Lids00000122 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index effc8e7..ab0a3b3 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ sudo chmod +X post.cgi #### 2、编译执行 -依次输入下述命令即可。 +输入下述命令即可。 sh run.sh From 75378220e2b9738b447394d8f573d6b69e18b2ad Mon Sep 17 00:00:00 2001 From: seer <2290569893@qq.com> Date: Sun, 17 Mar 2024 12:24:08 +0800 Subject: [PATCH 8/9] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E4=B8=BB=E5=88=86=E6=94=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- httpd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/httpd.c b/httpd.c index 9804505..f45a0a3 100644 --- a/httpd.c +++ b/httpd.c @@ -11,7 +11,7 @@ #include #include #include - +//test branch commit by local #define ISspace(x) isspace((int)(x)) From f1f36694dd48589d6d5cd52fdcdcb2f61de7568f Mon Sep 17 00:00:00 2001 From: seer <2290569893@qq.com> Date: Sun, 17 Mar 2024 12:59:24 +0800 Subject: [PATCH 9/9] commit --- httpd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/httpd.c b/httpd.c index f45a0a3..9804505 100644 --- a/httpd.c +++ b/httpd.c @@ -11,7 +11,7 @@ #include #include #include -//test branch commit by local + #define ISspace(x) isspace((int)(x))