Сообщения

Кроссплатформенный многопоточный TCP/IP сервер на C++

Схема организации многопоточности Введение В данной статье мы рассмотрим простую реализацию TCP сервера и клиента на языке программирования C++ с использованием WinSocket2 для Windows и Posix Socket для Unix-подобных операционных систем. Весь исходный код представлен в этом репозитории GitHub Реализация Для начала рассмотрим общие определения как для серверной части, так и для клиентской части: general.h #ifndef GENERAL_H #define GENERAL_H #ifdef _WIN32 #else #define SD_BOTH 0 #endif #include <cstdint> #include <cstring> #include <cinttypes> #include <malloc.h>  // IP 127.0.0.1 uint32_t LOCALHOST_IP = 0x0100007f; // Код состояния сокета enum class SocketStatus : uint8_t { connected = 0, err_socket_init = 1, err_socket_bind = 2, err_socket_connect = 3, disconnected = 4 }; // Буффер данных struct DataBuffer { int size = 0; void* data_ptr = nullptr; DataBuffer() = default; DataBuffer(int size, void* data_ptr) : size(size), dat
Недавние сообщения