/
IT-Legion
/
NetworkProgramming
Обзор
Документация
Войти
/
IT-Legion
/
NetworkProgramming
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
lesson_3/server.cpp
86 строк
3 KB
Перевозников Сергей Николаевич
update lesson_3/server.cpp
16 янв 2026, 14:52
Верифицирован
16 янв 2026, 14:52
568e2e9
Код
Авторство
О чём код?
#include <iostream> #include <string> #include "WinSock2.h" #include <ws2tcpip.h> #pragma comment(lib, "Ws2_32.lib") using namespace std; int main() { const int MAXSTRLEN = 255; WSADATA wsaData; SOCKET listeningSocket; SOCKET clientSocket; sockaddr_in serverAddr; // Инициализация Winsock if (WSAStartup(MAKEWORD(2, 2), &wsaData)) { cerr << "WSAStartup failed.\n"; return 1; } // Создаем сокет listeningSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (listeningSocket == INVALID_SOCKET) { cerr << "Socket creation failed.\n"; WSACleanup(); return 1; } // Привязываем сокет к адресу и порту serverAddr.sin_family = AF_INET; serverAddr.sin_addr.s_addr = INADDR_ANY; // Используем INADDR_ANY для прослушивания любых интерфейсов serverAddr.sin_port = htons(20000); // Порт 20000 if (bind(listeningSocket, (struct sockaddr*)&serverAddr, sizeof(serverAddr)) != 0) { cerr << "Bind failed.\n"; closesocket(listeningSocket); WSACleanup(); return 1; } // Начинаем прослушивать входящие соединения if (listen(listeningSocket, 1) != 0) { cerr << "Listen failed.\n"; closesocket(listeningSocket); WSACleanup(); return 1; } cout << "Server is started on port 20000...\n"; // Принятие входящего соединения clientSocket = accept(listeningSocket, nullptr, nullptr); if (clientSocket == INVALID_SOCKET) { cerr << "Accept failed.\n"; closesocket(listeningSocket); WSACleanup(); return 1; } // Прием данных от клиента char buffer[MAXSTRLEN]; int receivedBytes = recv(clientSocket, buffer, MAXSTRLEN, 0); if (receivedBytes > 0) { buffer[receivedBytes] = '\0'; cout << "Client said: " << buffer << endl; } else { cerr << "Recv failed.\n"; } // Ответ клиенту const char* responseText = "Hello from server!"; if (send(clientSocket, responseText, strlen(responseText), 0) <= 0) { cerr << "Send failed.\n"; } // Освобождаем ресурсы closesocket(clientSocket); closesocket(listeningSocket); WSACleanup(); system("pause"); return 0; }