• vc 实现一个 http Server


    实现 http 的协议解析 以及封装 , 对应不同的访问地址, 调用绑定的处理程序 , 

    #include "stdafx.h"
    
    #include "lyocommwebServer.h"
    #include "lyocommwebServer.cpp"
    
    
    // http://127.0.0.1:10000/
    
    
    
    unsigned int __stdcall favicon(void* requ )
    {
    	lyoRequest* req = (lyoRequest*) requ;
    	char* buf;
    	int bufSize;
    
    
    	FILE * file = NULL;
    	errno_t e = fopen_s(&file, "E:\测试代码\cWeb\Debug\favicon.ico", "r");
    	if (!e && file)
    	{
    		fseek(file, 0,SEEK_END );
    		bufSize = ftell(file);
    
    		buf = new char[bufSize];
    
    		fseek(file, 0, SEEK_SET );
    		fread(buf,   bufSize, 1 , file) ;
    
    		fclose(file);
    
    	}
    
    	lyoResponse resp;
    	resp.status = http_200;
    	resp.type = content_html ;
    	resp.content = buf ;
    	resp.length =  bufSize;
    
    	lyoServer::doResponse(resp, req->sock);
    	delete[] buf;
    	delete req;
    
    	return 1;
    
    }
    
    
    unsigned int __stdcall index(void* requ )
    {
    	lyoRequest* req = (lyoRequest*) requ;
    	char* con = "<head><title>index.html</title></head><body><b>web server 测试页面</b></body>";
    
    
    	lyoResponse resp;
    	resp.status = http_200;
    	resp.type = content_html ;
    	resp.content = con ;
    	resp.length = strlen( con);
    
    	lyoServer::doResponse(resp, req->sock);
    	delete req;
    
    	return 1;
    
    }
    
    
    void main(int argc, char * argv[]) {
    
    
    	lyoServer server = lyoServer("127.0.0.1" , 10000);
    
    	void* p = (PVOID)&server ;
    
    	server.handlers["/index.php"] = &index;
    	server.handlers["/"] = &index;
    	server.handlers["/favicon.ico"] = &favicon;
    
    
    	if (server.valid)
    	{
    		server.listen();
    	}
    
    	
    
    }
    

      以下是测试页面:

    如无特别说明, 文章为本人原创, 转载请注明出处, 也欢迎批评指正
    -------------------------------------------------------------------
    如有问题, 欢迎邮箱讨论: lyogogo@outlook.com
  • 相关阅读:
    DataSource
    Quality in the Test Automation Review Process and Design Review Template
    测试的面临的挑战
    【CSP-S2019模拟】11.11比赛总结
    【CSP-S2019模拟】【Comet OJ 模拟赛Day2T3】11.10比赛总结
    【CSP-S2019模拟】11.08比赛总结
    【Codeforces#599】简要题解
    【简单计数知识2】JZOJ6405. 【NOIP2019模拟11.04】c
    反演学习小计
    【CSP-S2019模拟】11.06比赛总结
  • 原文地址:https://www.cnblogs.com/lyo1005/p/4393029.html
Copyright © 2020-2023  润新知