Китайский асинхронный веб-сервер

Ответить
ya
^-^
Сообщения: 2336
Зарегистрирован: 16 дек 2021, 19:56

Китайский асинхронный веб-сервер

Сообщение ya »

Установить:

Код: Выделить всё

sudo apt-get install libmariadb-dev
Репозиторий
https://github.com/markparticle/WebServer

скачать:

Код: Выделить всё

git clone https://github.com/markparticle/WebServer.git
исправить файл сборки
WebServer/build/Makefile

Код: Выделить всё

CXX = g++
CXXFLAGS = -std=c++14 -O2 -Wall -g -I/usr/include/mysql

TARGET = server
OBJS = ../code/log/*.cpp ../code/pool/*.cpp ../code/timer/*.cpp \
       ../code/http/*.cpp ../code/server/*.cpp \
       ../code/buffer/*.cpp ../code/main.cpp

all: $(TARGET)
$(TARGET): $(OBJS)
        $(CXX) $(CXXFLAGS) $(OBJS) -o ../bin/$(TARGET) -pthread -lmysqlclient

clean:
        rm -rf ../bin/$(TARGET)




Создать каталог WebServer/build/bin и собрать проект из Makefile

Код: Выделить всё

all:
	mkdir -p bin
	cd build && make

запустить:

Код: Выделить всё

make test
./bin/server
В веб-браузере:

Код: Выделить всё

http://localhost:1316
ya
^-^
Сообщения: 2336
Зарегистрирован: 16 дек 2021, 19:56

Re: Китайский асинхронный веб-сервер

Сообщение ya »

При ошибке соединения с базой данных чтобы web-сервер не падал, добавить
server: ../code/http/httprequest.cpp:182: static bool HttpRequest::UserVerify(const std::string&, const std::string&, bool): Assertion `sql' failed.

Код: Выделить всё

    if (!sql) {
        std::cerr << "Ошибка соединения с базой данных" << std::endl;
        return false; // Возвращаем false при ошибке соединения
    }
assert(sql); // Это утверждение вызвало ошибку
ya
^-^
Сообщения: 2336
Зарегистрирован: 16 дек 2021, 19:56

Re: Китайский асинхронный веб-сервер

Сообщение ya »

проверить утечки памяти:

Код: Выделить всё

valgrind --leak-check=full ./bin/server
Ответить