#include "socket_up.h" // // Линковка библиотеки Winsock // #pragma comment(lib, "ws2_32.lib") // don't need but I think may shoot SOCKET SocketUp::config_socket_windows() { // 1. Инициализация Winsock WSADATA wsaData; if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) { std::cerr << "WSAStartup failed with error: " << WSAGetLastError() << "\n"; return 1; } // 2. Создание сокета SOCKET listenSocket = socket(AF_INET, SOCK_STREAM, 0); if (listenSocket == INVALID_SOCKET) { std::cerr << "Socket creation failed with error: " << WSAGetLastError() << "\n"; WSACleanup(); return 1; } // 3. Настройка адреса сокета sockaddr_in serverAddr; memset(&serverAddr, 0, sizeof(serverAddr)); serverAddr.sin_family = AF_INET; serverAddr.sin_port = htons(8080); // Порт для привязки serverAddr.sin_addr.s_addr = INADDR_ANY; // Привязка к любому интерфейсу // 4. Привязка сокета к адресу if (bind(listenSocket, (struct sockaddr*)&serverAddr, sizeof(serverAddr)) == SOCKET_ERROR) { std::cerr << "Bind failed with error: " << WSAGetLastError() << "\n"; closesocket(listenSocket); WSACleanup(); return 1; } // 5. Перевод сокета в режим прослушивания if (listen(listenSocket, SOMAXCONN) == SOCKET_ERROR) { std::cerr << "Listen failed with error: " << WSAGetLastError() << "\n"; closesocket(listenSocket); WSACleanup(); return 1; } std::cout << "Server is listening on port 8080...\n"; return listenSocket; // // 8. Закрытие клиентского сокета // closesocket(clientSocket); // // 9. Закрытие серверного сокета и завершение Winsock // closesocket(listenSocket); // WSACleanup(); // std::cout << "Server shut down.\n"; return 0; }