Схема организации многопоточности  Введение   В данной статье мы рассмотрим простую реализацию 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),...
ByteGear
Блог о программировании