• 大小: 4.29MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-16
  • 语言: 其他
  • 标签: c++  http  

资源简介

基于libevent的httpserver,默认绑定8080端口,实现get,post,上传下载文件,压缩文件夹

资源截图

代码片段和文件信息

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

#include “stdafx.h“


#include 
#include 
#include 
#include   
#include  
#include 
#include 
#include 
#include 
#include 
#include 
#include 

#include “getexpression.h“
#include “common/rapidjson/document.h“
#include “common/common.h“
#include “base64ex.h“

using namespace std;

#pragma comment(lib“ws2_32.lib“)

int init_win_socket()
{
    WSADATA wsaData;
    if (WSAStartup(MAKEWORD(2 2) &wsaData) != 0)
    {
        return -1;
    }
    return 0;
}

void HttpReplay(struct evhttp_request *req char* pReplay )
{
if (!pReplay || !req)
{
cout << “HttpReplay failed !“ << endl;
return;
}

struct evbuffer *buf = evbuffer_new();
if (!buf)
{
puts(“failed to create response buffer \n“);
return;
}
evbuffer_add_printf(buf “%s\n“ pReplay);
evhttp_send_reply(req HTTP_OK “OK“ buf);
evbuffer_free(buf);
}

void PublishDesigner( const char* pIp = “127.0.0.1“ int iPort = 6376 const char* pQueue = “liusy“ const char* pPass= “liusy“ const char* pInfo= “有一个新文件“)
{
typedef void(*pPushInfoFUN)(const char* pIp int iPort const char* pPass const char* pQueue const char* pInfo);
HMODULE hmoudle = LoadLibraryA(“redisop.dll“);
if (!hmoudle)
{
cout << “open redisop.dll failed“ << endl;
}
pPushInfoFUN pPublish = (pPushInfoFUN)GetProcAddress(hmoudle “PushInfo“);
if (pPublish)
{
pPublish(pIp iPort pQueue pPass pInfo);
}
else
{
cout << “redisop.dll could not found pushinfo function“ << endl;
}
}

bool SaveFile(char* pDta int iLen const char* pSaveRoute)
{
if (!pDta)
{
cout << “save dta is null “ << endl;
return false;
}

char sHead[1024] = { 0 } sEnd[1024] = { 0 } sInfo[1024] = { 0 } sType[1024] = { 0 };

int iStart = 0;
int iEnd = 0;

int iIndex = 0;
for( int i = 0; i < iLen; ++i )
{
char cCur = pDta[i];
if( iIndex == 0 )
{
sHead[i] = cCur;
if (pDta[i] == ‘\n‘)
{
iIndex++;
iStart = i+1;
}
}
else if (iIndex == 1)
{
sInfo[i-iStart] = cCur;
if (pDta[i] == ‘\n‘)
{
iIndex++;
iStart = i+1;
}
}
else if (iIndex == 2)
{
sType[i - iStart] = cCur;
if (pDta[i] == ‘\n‘)
{
iIndex++;
iStart = i+1;
}
}
else
{
iStart = i+2;
cCur = pDta[iStart];
break;
}
}

for (int i = iLen - 2; i > 0; --i)
{
char cCur = pDta[i];
if (cCur == ‘\n‘)
{
iEnd = i;
break;
}
}

if (iStart >= iEnd)
{
cout << “save data is error “ << endl;
return false;
}

string sFileName(sInfo);
int iPos = sFileName.find(“filename=“);
int iEndPos = sFileName.find(“\r\n“);


if (iPos > 0 && iEndPos > iPos)
{
string sBuf = sFileName.substr(iPos+10 iEndPos-iPos - 11);
int iPos = sBuf.find_last_of(‘\\‘);

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

     文件     580608  2018-03-01 11:38  http\Debug\http.exe

     文件       3285  2017-11-24 12:05  http\http\base64ex.h

     文件      10028  2017-04-20 13:48  http\http\common\CComputerInfo.cpp

     文件        427  2017-03-22 14:48  http\http\common\CComputerInfo.h

     文件      11572  2017-10-13 16:43  http\http\common\common.h

     文件       1153  2016-11-09 11:27  http\http\common\DuiLib\CMakeLists.txt

     文件      40618  2016-11-09 11:27  http\http\common\DuiLib\Control\UIActiveX.cpp

     文件       1958  2016-11-09 11:27  http\http\common\DuiLib\Control\UIActiveX.h

     文件      14421  2016-11-09 11:27  http\http\common\DuiLib\Control\UIButton.cpp

     文件       1996  2016-11-09 11:27  http\http\common\DuiLib\Control\UIButton.h

     文件        526  2016-11-09 11:27  http\http\common\DuiLib\Control\UICheckBox.cpp

     文件        800  2016-11-09 11:27  http\http\common\DuiLib\Control\UICheckBox.h

     文件      41410  2016-11-09 11:27  http\http\common\DuiLib\Control\UICombo.cpp

     文件       4613  2016-11-09 11:27  http\http\common\DuiLib\Control\UICombo.h

     文件       9972  2016-11-09 11:27  http\http\common\DuiLib\Control\UIDateTime.cpp

     文件        859  2016-11-09 11:27  http\http\common\DuiLib\Control\UIDateTime.h

     文件      19489  2016-11-09 11:27  http\http\common\DuiLib\Control\UIEdit.cpp

     文件       2150  2016-11-09 11:27  http\http\common\DuiLib\Control\UIEdit.h

     文件       6560  2016-11-09 11:27  http\http\common\DuiLib\Control\UIFlash.cpp

     文件       2013  2016-11-09 11:27  http\http\common\DuiLib\Control\UIFlash.h

     文件      18374  2016-11-09 11:27  http\http\common\DuiLib\Control\UIGifAnim.cpp

     文件       1478  2016-11-09 11:27  http\http\common\DuiLib\Control\UIGifAnim.h

     文件      20112  2016-11-09 11:27  http\http\common\DuiLib\Control\UILabel.cpp

     文件       3004  2016-11-09 11:27  http\http\common\DuiLib\Control\UILabel.h

     文件     100054  2016-11-09 11:27  http\http\common\DuiLib\Control\UIList.cpp

     文件      13603  2017-09-27 14:48  http\http\common\DuiLib\Control\UIList.h

     文件       7346  2016-11-09 11:27  http\http\common\DuiLib\Control\UIOption.cpp

     文件       1415  2016-11-09 11:27  http\http\common\DuiLib\Control\UIOption.h

     文件       2798  2016-11-09 11:27  http\http\common\DuiLib\Control\UIProgress.cpp

     文件        832  2016-11-09 11:27  http\http\common\DuiLib\Control\UIProgress.h

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

评论

共有 条评论