makeup
This commit is contained in:
parent
816fcf8833
commit
69efe70d78
@ -1,8 +1,6 @@
|
|||||||
#include "socket_up.h"
|
#include "socket_up.h"
|
||||||
#include "socket_handler.h"
|
#include "socket_handler.h"
|
||||||
|
|
||||||
const int BUFFER_SIZE = 2048;
|
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
SOCKET listen_socket = SocketUp::config_socket_windows();
|
SOCKET listen_socket = SocketUp::config_socket_windows();
|
||||||
|
@ -10,10 +10,10 @@ const int BUFFER_SIZE = 4096;
|
|||||||
int SocketHandler::working_with_client_windows(SOCKET listen_socket) {
|
int SocketHandler::working_with_client_windows(SOCKET listen_socket) {
|
||||||
while (1) {
|
while (1) {
|
||||||
// 6. Принятие входящего соединения
|
// 6. Принятие входящего соединения
|
||||||
sockaddr_in clientAddr;
|
sockaddr_in client_addr;
|
||||||
int clientAddrSize = sizeof(clientAddr);
|
int client_addr_size = sizeof(client_addr);
|
||||||
SOCKET clientSocket = accept(listen_socket, (struct sockaddr*)&clientAddr, &clientAddrSize);
|
SOCKET client_socket = accept(listen_socket, (struct sockaddr*)&client_addr, &client_addr_size);
|
||||||
if (clientSocket == INVALID_SOCKET) {
|
if (client_socket == INVALID_SOCKET) {
|
||||||
std::cerr << "Accept failed with error: " << WSAGetLastError() << "\n";
|
std::cerr << "Accept failed with error: " << WSAGetLastError() << "\n";
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -21,9 +21,9 @@ int SocketHandler::working_with_client_windows(SOCKET listen_socket) {
|
|||||||
|
|
||||||
// 7. получение данных от юзера
|
// 7. получение данных от юзера
|
||||||
char buffer[BUFFER_SIZE] = {0};
|
char buffer[BUFFER_SIZE] = {0};
|
||||||
int bytesReceived = recv(clientSocket, buffer, BUFFER_SIZE, 0);
|
int bytes_received = recv(client_socket, buffer, BUFFER_SIZE, 0);
|
||||||
if (bytesReceived > 0) {
|
if (bytes_received > 0) {
|
||||||
std::string request(buffer, bytesReceived);
|
std::string request(buffer, bytes_received);
|
||||||
std::cout << "Received request:\n" << request << "\n";
|
std::cout << "Received request:\n" << request << "\n";
|
||||||
|
|
||||||
// Обработка запроса
|
// Обработка запроса
|
||||||
@ -31,9 +31,9 @@ int SocketHandler::working_with_client_windows(SOCKET listen_socket) {
|
|||||||
std::cout << "Response:\n" << response << "\n\n";
|
std::cout << "Response:\n" << response << "\n\n";
|
||||||
|
|
||||||
// Отправка ответа
|
// Отправка ответа
|
||||||
send(clientSocket, response.c_str(), response.size(), 0);
|
send(client_socket, response.c_str(), response.size(), 0);
|
||||||
}
|
}
|
||||||
closesocket(clientSocket);
|
closesocket(client_socket);
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -44,10 +44,10 @@ int SocketHandler::working_with_client_windows(SOCKET listen_socket) {
|
|||||||
int SocketHandler::working_with_client_unix(int listen_socket) {
|
int SocketHandler::working_with_client_unix(int listen_socket) {
|
||||||
while (1) {
|
while (1) {
|
||||||
// Принятие соединения
|
// Принятие соединения
|
||||||
sockaddr_in clientAddr;
|
sockaddr_in client_addr;
|
||||||
socklen_t clientAddrSize = sizeof(clientAddr);
|
socklen_t client_addr_size = sizeof(client_addr);
|
||||||
int clientSocket = accept(listen_socket, (struct sockaddr*)&clientAddr, &clientAddrSize);
|
int client_socket = accept(listen_socket, (struct sockaddr*)&client_addr, &client_addr_size);
|
||||||
if (clientSocket == -1) {
|
if (client_socket == -1) {
|
||||||
perror("Accept failed");
|
perror("Accept failed");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -55,18 +55,18 @@ int SocketHandler::working_with_client_unix(int listen_socket) {
|
|||||||
|
|
||||||
// Чтение данных
|
// Чтение данных
|
||||||
char buffer[BUFFER_SIZE] = {0};
|
char buffer[BUFFER_SIZE] = {0};
|
||||||
ssize_t bytesReceived = read(clientSocket, buffer, BUFFER_SIZE);
|
ssize_t bytes_received = read(client_socket, buffer, BUFFER_SIZE);
|
||||||
if (bytesReceived > 0) {
|
if (bytes_received > 0) {
|
||||||
std::string request(buffer, bytesReceived);
|
std::string request(buffer, bytes_received);
|
||||||
std::cout << "Received request:\n" << request << "\n";
|
std::cout << "Received request:\n" << request << "\n";
|
||||||
|
|
||||||
std::string response = RouteHandler::get_response_by_request(request);
|
std::string response = RouteHandler::get_response_by_request(request);
|
||||||
std::cout << "Response:\n" << response << "\n\n";
|
std::cout << "Response:\n" << response << "\n\n";
|
||||||
|
|
||||||
// Отправка ответа
|
// Отправка ответа
|
||||||
send(clientSocket, response.c_str(), response.size(), 0);
|
send(client_socket, response.c_str(), response.size(), 0);
|
||||||
}
|
}
|
||||||
close(clientSocket);
|
close(client_socket);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,8 +8,8 @@
|
|||||||
|
|
||||||
SOCKET SocketUp::config_socket_windows() {
|
SOCKET SocketUp::config_socket_windows() {
|
||||||
// 1. Инициализация Winsock
|
// 1. Инициализация Winsock
|
||||||
WSADATA wsaData;
|
WSADATA wsa_data;
|
||||||
if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) {
|
if (WSAStartup(MAKEWORD(2, 2), &wsa_data) != 0) {
|
||||||
std::cerr << "WSAStartup failed with error: " << WSAGetLastError() << "\n";
|
std::cerr << "WSAStartup failed with error: " << WSAGetLastError() << "\n";
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@ -23,14 +23,14 @@ SOCKET SocketUp::config_socket_windows() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 3. Настройка адреса сокета
|
// 3. Настройка адреса сокета
|
||||||
sockaddr_in serverAddr;
|
sockaddr_in server_addr;
|
||||||
memset(&serverAddr, 0, sizeof(serverAddr));
|
memset(&server_addr, 0, sizeof(server_addr));
|
||||||
serverAddr.sin_family = AF_INET;
|
server_addr.sin_family = AF_INET;
|
||||||
serverAddr.sin_port = htons(8080); // Порт для привязки
|
server_addr.sin_port = htons(8080); // Порт для привязки
|
||||||
serverAddr.sin_addr.s_addr = INADDR_ANY; // Привязка к любому интерфейсу
|
server_addr.sin_addr.s_addr = INADDR_ANY; // Привязка к любому интерфейсу
|
||||||
|
|
||||||
// 4. Привязка сокета к адресу
|
// 4. Привязка сокета к адресу
|
||||||
if (bind(listen_socket, (struct sockaddr*)&serverAddr, sizeof(serverAddr)) == SOCKET_ERROR) {
|
if (bind(listen_socket, (struct sockaddr*)&server_addr, sizeof(server_addr)) == SOCKET_ERROR) {
|
||||||
std::cerr << "Bind failed with error: " << WSAGetLastError() << "\n";
|
std::cerr << "Bind failed with error: " << WSAGetLastError() << "\n";
|
||||||
closesocket(listen_socket);
|
closesocket(listen_socket);
|
||||||
WSACleanup();
|
WSACleanup();
|
||||||
@ -48,13 +48,6 @@ SOCKET SocketUp::config_socket_windows() {
|
|||||||
|
|
||||||
|
|
||||||
return listen_socket;
|
return listen_socket;
|
||||||
|
|
||||||
// 8. Закрытие клиентского сокета
|
|
||||||
// closesocket(clientSocket);
|
|
||||||
|
|
||||||
// // 9. Закрытие серверного сокета и завершение Winsock
|
|
||||||
// closesocket(listen_socket);
|
|
||||||
// WSACleanup();
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -68,13 +61,13 @@ int SocketUp::config_socket_unix() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
sockaddr_in serverAddr;
|
sockaddr_in server_addr;
|
||||||
memset(&serverAddr, 0, sizeof(serverAddr));
|
memset(&server_addr, 0, sizeof(server_addr));
|
||||||
serverAddr.sin_family = AF_INET;
|
server_addr.sin_family = AF_INET;
|
||||||
serverAddr.sin_port = htons(8080); // Порт для привязки
|
server_addr.sin_port = htons(8080); // Порт для привязки
|
||||||
serverAddr.sin_addr.s_addr = INADDR_ANY; // Привязка к любому интерфейсу
|
server_addr.sin_addr.s_addr = INADDR_ANY; // Привязка к любому интерфейсу
|
||||||
|
|
||||||
if (bind(server_socket, (struct sockaddr*)&serverAddr, sizeof(serverAddr)) == -1) {
|
if (bind(server_socket, (struct sockaddr*)&server_addr, sizeof(server_addr)) == -1) {
|
||||||
perror("Bind failed");
|
perror("Bind failed");
|
||||||
close(server_socket);
|
close(server_socket);
|
||||||
return 1;
|
return 1;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user