资源简介
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.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“
“
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 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\li
文件 2 2018-09-28 15:18 http_server0.2\http_server\Debug\li
文件 2 2018-09-28 15:18 http_server0.2\http_server\Debug\li
文件 2 2018-09-28 15:18 http_server0.2\http_server\Debug\li
文件 2 2018-09-28 15:18 http_server0.2\http_server\Debug\li
文件 2 2018-09-28 15:18 http_server0.2\http_server\Debug\li
文件 2 2018-09-28 15:18 http_server0.2\http_server\Debug\li
文件 2 2018-09-28 15:18 http_server0.2\http_server\Debug\li
文件 2 2018-09-28 15:18 http_server0.2\http_server\Debug\li
文件 2 2018-09-28 15:18 http_server0.2\http_server\Debug\li
文件 2 2018-09-28 15:18 http_server0.2\http_server\Debug\li
文件 2 2018-09-28 15:18 http_server0.2\http_server\Debug\li
............此处省略72个文件信息
- 上一篇:keil C51 v6.12完全解密版
- 下一篇:vs2010 2013 mfc
相关资源
- 简单HTTP代理服务器-源码c++
- C++ 实现 HTTP HTTPS POST GET(包含curl版本
- C语言搭建的简单web服务器
- C++进行http请求,并获取返回结果
- HTTP 浏览器
- C++开发web服务框架之HTTP Web框架的设计
- C++基于HTTP的POST上传,C#的网站接收并
- VC++ 实现自动升级 漂亮的界面效果
- C实现http服务源码 适用于linux 和wind
- C语言http客户端通信实现
- 用Socket写的HTTP类,商业级C++源码。
- HTTP chunked方式传输的C语言解析
- io多路复用c语言版简单http服务器dem
- MFC的HttpClient的Get和Post方法
- 轻量级C++实现的httpserver和httpclient
- c++ HTTP协议库 httplib
- linux平台下C语言实现一个简单的http
- 用Socket 实现http协议
- HTTP上传和C++封装类支持GET、POST多种方
- C++实现http客户端连接服务端及客户端
- C++ httpclient类
- 纯C语言写的https模拟GET和POST
- c++ http
- c++ http并保存到本地
- C++ HTTP GET,POST的简单
- winhttp 异步c++库
- 飞秋基于c语言实现
- C++实现HTTP处理类
- systemverilog验证 张春 源代码 http://ch
- C++ 实现的HTTP协议打包解析器
评论
共有 条评论