資源簡介
c語言實現http服務器和瀏覽器進行數據交換,使用post請求

代碼片段和文件信息
//?http_server.cpp?:?定義控制臺應用程序的入口點。
//
#include?“stdafx.h“
#include?
?
#pragma?comment(lib?“ws2_32.lib“)??/*?WinSock使用的庫函數?*/
//查找要訪問的文件,和后綴
void?http_find_file_cmd(char?*bufint?buflenchar?*file_namechar?*suffix)
{
int?length=0;
char?*begin*end;
/*這是瀏覽器發給服務器的內容
GET?/index.html?HTTP/1.1
Accept:?text/html?application/xhtml+xml?image/jxr?
Accept-Language:?zh-CN
User-Agent:?Mozilla/5.0?(Windows?NT?10.0;?WOW64;?Trident/7.0;?rv:11.0)?like?Gecko
Accept-Encoding:?gzip?deflate
Host:?192.168.0.105:8888
Connection:?Keep-Alive
*/
/*
瀏覽器使用post發送數據過來,其實數據就跟在http協議頭后面。
*/
char?*p;
p=strstr(buf“=“); //先找一下“=“號
//如果找到“=“,說明這個http包是有參數的
if(p)
{
p+=1;
//這里要根據實際情況處理,看你傳輸了哪些參數
//printf(“\n接收到:%s\n“p);
switch(*p)
{
case?‘0‘:
printf(“關燈\n“);
break;
case?‘1‘:
printf(“開燈\n“);
break;
case?‘3‘:
printf(“刷新數據\n“);
break;
default:
printf(“這是要提交很多數據吧\n“);
}
}
else
{
begin=strchr(buf‘?‘); //找到GET后面的空格
begin+=2; //找到文件開始
end=strchr(begin‘?‘); //找到文件結束
*end=0;
length=end-begin;
if(length>0)
{
memcpy(file_namebeginlength); //把文件名保存到file_name里面
file_name[length]=0;
begin=strchr(file_name‘.‘); //找到文件后綴
if(begin)
{
strcpy(suffixbegin+1); //這里保存后綴
}
}
}
}
//處理http協議并返回給瀏覽器
int?http_send_response(SOCKET?socchar?*bufint?buf_len)
{
//http協議頭
char?*http_res_hdr_tmpl?=?
“HTTP/1.1?200?OK\r\nServer:?Huiyong‘s?Server?<0.1>\r\n“
“Accept-Ranges:?bytes\r\nContent-Length:?%d\r\nConnection:?close\r\n“
“Content-Type:?%s\r\n\r\n“;
//如果沒有找到index頁碼,就返回這個提示
const?char*?estr?=?“HTTP/1.0?600?Internal?Server?Error\r\n“
????“Server:?wz?simple?httpd?1.0\r\n“
????“Content-Type:?text/html\r\n“
????“\r\n“
????““
????“tle>hes.cn tle>\r\n“
????“600:?聯系管理員
服務器還沒有搞好
“
????““;
//post??index頁面
char?index[2048];?
?char*?index_temp?=
“\r\n“
““
““
“ta?charset=\“UTF-8\“>\r\n“
“tle>hes.com tle>\r\n“
““
““
“qian?ru?shi?test:\r\n“
“\r\n“
“\r\n“
“\r\n“
“V:%d“
“
“
“I:%d“
“
“
“T:%d“
““
““
““;
int?read_lenfile_lenhdr_lensend_le
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????305291??2015-12-21?14:30??http_server0.1\Debug\fengche.png
?????文件?????305291??2015-12-21?14:30??http_server0.1\Debug\http_server\fengche.png
?????文件?????482304??2018-09-27?09:13??http_server0.1\Debug\http_server\http_server.exe
?????文件????????288??2018-09-26?18:02??http_server0.1\Debug\http_server\index.html
?????文件?????439296??2018-09-27?18:01??http_server0.1\Debug\http_server.exe
?????文件?????932044??2018-09-27?18:01??http_server0.1\Debug\http_server.ilk
?????文件????2296832??2018-09-27?18:01??http_server0.1\Debug\http_server.pdb
?????文件????????744??2018-09-27?16:36??http_server0.1\Debug\index.html
?????文件????????288??2018-09-26?18:02??http_server0.1\Debug\index1.html
?????文件???????1802??2018-09-27?18:01??http_server0.1\http_server\Debug\cl.command.1.tlog
?????文件??????21346??2018-09-27?18:01??http_server0.1\http_server\Debug\CL.read.1.tlog
?????文件???????1464??2018-09-27?18:01??http_server0.1\http_server\Debug\CL.write.1.tlog
?????文件???????4804??2018-09-27?11:26??http_server0.1\http_server\Debug\http_server.Build.CppClean.log
?????文件????????107??2018-09-27?18:01??http_server0.1\http_server\Debug\http_server.lastbuildstate
?????文件????????144??2018-09-27?18:01??http_server0.1\http_server\Debug\http_server.log
?????文件??????41934??2018-09-27?18:01??http_server0.1\http_server\Debug\http_server.obj
?????文件????1245184??2018-09-27?11:26??http_server0.1\http_server\Debug\http_server.pch
?????文件????????335??2018-09-26?12:32??http_server0.1\http_server\Debug\index.html
?????文件??????????2??2018-09-27?18:01??http_server0.1\http_server\Debug\li
?????文件??????????2??2018-09-27?18:01??http_server0.1\http_server\Debug\li
?????文件??????????2??2018-09-27?18:01??http_server0.1\http_server\Debug\li
?????文件??????????2??2018-09-27?18:01??http_server0.1\http_server\Debug\li
?????文件??????????2??2018-09-27?18:01??http_server0.1\http_server\Debug\li
?????文件??????????2??2018-09-27?18:01??http_server0.1\http_server\Debug\li
?????文件??????????2??2018-09-27?18:01??http_server0.1\http_server\Debug\li
?????文件??????????2??2018-09-27?18:01??http_server0.1\http_server\Debug\li
?????文件??????????2??2018-09-27?18:01??http_server0.1\http_server\Debug\li
?????文件??????????2??2018-09-27?18:01??http_server0.1\http_server\Debug\li
?????文件??????????2??2018-09-27?18:01??http_server0.1\http_server\Debug\li
?????文件??????????2??2018-09-27?18:01??http_server0.1\http_server\Debug\li
............此處省略52個文件信息
評論
共有 條評論