/
IT-Legion
/
NetworkProgramming
Обзор
Документация
Войти
/
IT-Legion
/
NetworkProgramming
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
lesson_3/client.cpp
64 строки
2 KB
Перевозников Сергей Николаевич
update lesson_3/client.cpp
16 янв 2026, 14:51
Верифицирован
16 янв 2026, 14:51
51bef46
Код
Авторство
О чём код?
#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 _socket; sockaddr_in addr; if (WSAStartup(MAKEWORD(2, 2), &wsaData)) { // Проверяем запуск Winsock cerr << "Failed to initialize Winsock." << endl; return 1; } _socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); // Создаем TCP-сокет if (_socket == INVALID_SOCKET) { cerr << "Socket creation failed." << endl; WSACleanup(); return 1; } addr.sin_family = AF_INET; inet_pton(AF_INET, "127.0.0.1", &addr.sin_addr); // Преобразуем IP адрес addr.sin_port = htons(20000); // Устанавливаем порт сервера if (connect(_socket, reinterpret_cast<sockaddr*>(&addr), sizeof(addr))) { // Пробуем подключиться cerr << "Connection attempt failed." << endl; closesocket(_socket); WSACleanup(); return 1; } char buf[MAXSTRLEN]; // Буфер для приема сообщений const char* text = "Hello world!"; cout << "\nPress Enter to send 'Hello world!' to the server\n"; cin.ignore(); // Игнорируем остаток символов в потоке ввода if (send(_socket, text, strlen(text), 0) <= 0) { // Отправляем сообщение серверу cerr << "Send operation failed." << endl; closesocket(_socket); WSACleanup(); return 1; } int bytesReceived = recv(_socket, buf, MAXSTRLEN, 0); // Получаем ответ от сервера if (bytesReceived > 0) { buf[bytesReceived] = '\0'; // Обрезаем лишнюю память cout << "Server response: " << buf << endl; } else { cerr << "Receive operation failed or connection closed by peer." << endl; } closesocket(_socket); // Закрываем сокет WSACleanup(); // Завершаем использование Winsock system("pause"); // Ждем нажатия клавиши для завершения программы }