直接上代码:测试过可用。需要下载libevent库搭配着使用。外加json开源库(也可以不用,去掉相关代码即可。)
// .h
#pragma once
class HttpServer
{
public:
HttpServer();
~HttpServer();
static HttpServer* Instance(){ return m_instance; }
void StartListen(int httpPort); // 监听端口
private:
int httpserver_bindsocket(int port, int backlog);
void* httpserver_Dispatch(void *arg);
bool Linsten(int httpPort);
private:
static HttpServer* m_instance;
class AutoDel
{
public:
~AutoDel()
{
if (m_instance != nullptr)
{
delete m_instance;
m_instance = nullptr;
}
}
};
static AutoDel m_del;
};
//.cpp
#include <time.h>
#include <thread>
#include <Winsock2.h>
#include "event2/event.h"
#include "event2/buffer.h"
#include "event2/http.h"
#include "evhttp.h"
#include "json\include\reader.h"
#include "json\include\writer.h"
#include "HttpServer.h"
// libevent库需要用到