hello-world-cpp/task_5/socket_handler.cpp

55 lines
1.4 KiB
C++
Raw Normal View History

2025-01-13 04:58:58 +10:00
#include "socket_handler.h"
#include "routes.h"
const int BUFFER_SIZE = 4096;
int SocketHandler::working_with_client_windows(SOCKET listenSocket) {
while (1) {
// 6. Принятие входящего соединения
sockaddr_in clientAddr;
int clientAddrSize = sizeof(clientAddr);
SOCKET clientSocket = accept(listenSocket, (struct sockaddr*)&clientAddr, &clientAddrSize);
if (clientSocket == INVALID_SOCKET) {
std::cerr << "Accept failed with error: " << WSAGetLastError() << "\n";
continue;
}
std::cout << "Client connected!\n";
// 7. получение данных от юзера
char buffer[BUFFER_SIZE] = {0};
int bytesReceived = recv(clientSocket, buffer, BUFFER_SIZE, 0);
if (bytesReceived > 0) {
std::string request(buffer, bytesReceived);
std::cout << "Received request:\n" << request << "\n";
// Обработка запроса
std::string response = RouteHandler::get_response_by_request(request);
std::cout << "Response:\n" << response << "\n\n";
// Отправка ответа
send(clientSocket, response.c_str(), response.size(), 0);
}
closesocket(clientSocket);
}
return 0;
}
int SocketHandler::working_with_client_unix() {
return 0;
}