• 大小: 8.93MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-08
  • 语言: C/C++
  • 标签: http  

资源简介

c语言实现http服务器,浏览器页面上实时刷新服务器的数据

资源截图

代码片段和文件信息

// http_server.cpp : 定义控制台应用程序的入口点。
//

#include “stdafx.h“


#include 
 
#pragma comment(lib “ws2_32.lib“)  /* WinSock使用的库函数 */


SOCKET srv_soc=0acpt_soc;
char http_header[1024];
int hdr_len;
int nuber=1000;

//查找要访问的文件,和后缀
char 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;
case ‘9‘:
printf(“实时刷新数据\n“);


char buf[10];
sprintf(buf“%d“nuber++);
//浏览器需要实时刷新数据,这里不用发送http协议头,只需要发送发送文本即可
send(acpt_socbufstrlen(buf)0);
return 0;

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); //这里保存后缀
}
}



}

return 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.cntle>\r\n“
    “

600: 联系管理员

服务器还没有搞好


    ““;

//post  index页面
char index[2048]; 
 char* index_temp =
“\r\n“
““
““
ta charset=\“UTF-8\“>\r\n“
tle>hes.comtle>\r\n“
““
““
“qian ru shi test:\r\n“
\r\n“
\r\n“
\r\n“
“\r\n“
\r\n“
\r\n“
\r\n“
“\r\n“
\r\n“
\r\n“

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     305291  2015-12-21 14:30  http_server0.2\Debug\fengche.png

     文件     305291  2015-12-21 14:30  http_server0.2\Debug\http_server\fengche.png

     文件     482304  2018-09-27 09:13  http_server0.2\Debug\http_server\http_server.exe

     文件        288  2018-09-26 18:02  http_server0.2\Debug\http_server\index.html

     文件     440320  2018-09-28 15:18  http_server0.2\Debug\http_server.exe

     文件     895984  2018-09-28 15:18  http_server0.2\Debug\http_server.ilk

     文件    2296832  2018-09-28 15:18  http_server0.2\Debug\http_server.pdb

     文件        746  2018-09-28 09:49  http_server0.2\Debug\index.html

     文件        288  2018-09-26 18:02  http_server0.2\Debug\index1.html

     文件       3602  2018-09-28 15:18  http_server0.2\http_server\Debug\cl.command.1.tlog

     文件      42690  2018-09-28 15:18  http_server0.2\http_server\Debug\CL.read.1.tlog

     文件       2926  2018-09-28 15:18  http_server0.2\http_server\Debug\CL.write.1.tlog

     文件       4804  2018-09-27 11:26  http_server0.2\http_server\Debug\http_server.Build.CppClean.log

     文件        107  2018-09-28 15:18  http_server0.2\http_server\Debug\http_server.lastbuildstate

     文件        144  2018-09-28 15:18  http_server0.2\http_server\Debug\http_server.log

     文件      44096  2018-09-28 15:18  http_server0.2\http_server\Debug\http_server.obj

     文件    1245184  2018-09-28 13:51  http_server0.2\http_server\Debug\http_server.pch

     文件        335  2018-09-26 12:32  http_server0.2\http_server\Debug\index.html

     文件          2  2018-09-28 15:18  http_server0.2\http_server\Debug\link-cvtres.read.1.tlog

     文件          2  2018-09-28 15:18  http_server0.2\http_server\Debug\link-cvtres.write.1.tlog

     文件          2  2018-09-28 15:18  http_server0.2\http_server\Debug\link-rc.read.1.tlog

     文件          2  2018-09-28 15:18  http_server0.2\http_server\Debug\link-rc.write.1.tlog

     文件          2  2018-09-28 15:18  http_server0.2\http_server\Debug\link.103492-cvtres.read.1.tlog

     文件          2  2018-09-28 15:18  http_server0.2\http_server\Debug\link.103492-cvtres.write.1.tlog

     文件          2  2018-09-28 15:18  http_server0.2\http_server\Debug\link.103492-rc.read.1.tlog

     文件          2  2018-09-28 15:18  http_server0.2\http_server\Debug\link.103492-rc.write.1.tlog

     文件          2  2018-09-28 15:18  http_server0.2\http_server\Debug\link.103492.read.1.tlog

     文件          2  2018-09-28 15:18  http_server0.2\http_server\Debug\link.103492.write.1.tlog

     文件          2  2018-09-28 15:18  http_server0.2\http_server\Debug\link.194516-cvtres.read.1.tlog

     文件          2  2018-09-28 15:18  http_server0.2\http_server\Debug\link.194516-cvtres.write.1.tlog

............此处省略72个文件信息

评论

共有 条评论