/
AirLexa
/
06
Обзор
Документация
Войти
/
AirLexa
/
06
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Lesson_05/client.cpp
72 строки
2 KB
AirLexa
Урок 5
21 июн 2026, 18:12
Верифицирован
21 июн 2026, 18:12
969158e
Код
Авторство
О чём код?
#include <iostream> #include <string> #include <winsock2.h> #include <ws2tcpip.h> #pragma comment(lib, "Ws2_32.lib") int main() { WSADATA wsaData; int result = WSAStartup(MAKEWORD(2, 2), &wsaData); if (result != 0) { std::cerr << "WSAStartup failed with error: " << result << std::endl; return 1; } SOCKET connectSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (connectSocket == INVALID_SOCKET) { std::cerr << "Socket creation failed with error: " << WSAGetLastError() << std::endl; WSACleanup(); return 1; } sockaddr_in clientService; clientService.sin_family = AF_INET; clientService.sin_port = htons(54000); if (inet_pton(AF_INET, "127.0.0.1", &clientService.sin_addr) <= 0) { std::cerr << "Invalid address/ Address not supported" << std::endl; closesocket(connectSocket); WSACleanup(); return 1; } std::cout << "[Client] Connecting to server..." << std::endl; result = connect(connectSocket, (SOCKADDR*)&clientService, sizeof(clientService)); if (result == SOCKET_ERROR) { std::cerr << "Connect failed with error: " << WSAGetLastError() << std::endl; closesocket(connectSocket); WSACleanup(); return 1; } std::cout << "[Client] Connection successfully established." << std::endl; std::string message = "Hello from TCP client!"; result = send(connectSocket, message.c_str(), static_cast<int>(message.length()), 0); if (result == SOCKET_ERROR) { std::cerr << "Send failed with error: " << WSAGetLastError() << std::endl; closesocket(connectSocket); WSACleanup(); return 1; } std::cout << "[Client] Sent message: " << message << std::endl; char recvBuffer[512]; int bytesReceived = recv(connectSocket, recvBuffer, sizeof(recvBuffer) - 1, 0); if (bytesReceived > 0) { recvBuffer[bytesReceived] = '\0'; std::cout << "[Client] Received response: " << recvBuffer << std::endl; } else if (bytesReceived == 0) { std::cout << "[Client] Connection closed by server." << std::endl; } else { std::cerr << "Recv failed with error: " << WSAGetLastError() << std::endl; } closesocket(connectSocket); WSACleanup(); system("pause"); return 0; }