From 34d53ad7f126b017157042bead8214987e1849ad Mon Sep 17 00:00:00 2001 From: Dizel Date: Thu, 3 Apr 2025 11:45:18 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B0=D0=B7=D0=B4=D0=B5=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BA=D0=BE=D0=B4=D0=B0=20=D0=BD=D0=B0=20?= =?UTF-8?q?=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Нужно, чтобы создать класс клиента --- TestClientConnection/TestClientConnection.cpp | 53 ++++++++++++++----- 1 file changed, 41 insertions(+), 12 deletions(-) diff --git a/TestClientConnection/TestClientConnection.cpp b/TestClientConnection/TestClientConnection.cpp index b22cd32..ab91ea7 100644 --- a/TestClientConnection/TestClientConnection.cpp +++ b/TestClientConnection/TestClientConnection.cpp @@ -17,29 +17,57 @@ struct DataOut float MotorUL, MotorUR, MotorDL, MotorDR; } dataOut; -int main() +SOCKET ConnectToServer(const char* ip, int port) { WSAData wsaData; WORD DLLVersion = MAKEWORD(2, 1); if (WSAStartup(DLLVersion, &wsaData) != 0) { - std::cout << "Error startup\n"; - exit(1); + std::cout << "Error: WSAStartup failed\n"; + return INVALID_SOCKET; } SOCKADDR_IN addr; - int sizeofaddr = sizeof(addr); - - inet_pton(AF_INET, "127.0.0.1", &addr.sin_addr); - addr.sin_port = htons(1001); + inet_pton(AF_INET, ip, &addr.sin_addr); + addr.sin_port = htons(port); addr.sin_family = AF_INET; - SOCKET Connection = socket(AF_INET, SOCK_STREAM, NULL); + SOCKET Connection = socket(AF_INET, SOCK_STREAM, 0); + if (Connection == INVALID_SOCKET) + { + std::cout << "Error: Failed to create socket\n"; + WSACleanup(); + return INVALID_SOCKET; + } + if (connect(Connection, (SOCKADDR*)&addr, sizeof(addr)) != 0) { - std::cout << "Error: failed connect to server \n"; - return 1; + std::cout << "Error: Failed to connect to server\n"; + closesocket(Connection); + WSACleanup(); + return INVALID_SOCKET; + } + + return Connection; +} + +void CloseConnection(SOCKET& socket) +{ + if (socket != INVALID_SOCKET) + { + closesocket(socket); + WSACleanup(); + socket = INVALID_SOCKET; // Обнуляем сокет, чтобы избежать повторного использования + } +} + +int main() +{ + SOCKET Connection = ConnectToServer("127.0.0.1", 1001); + if (Connection == INVALID_SOCKET) + { + return 1; // Выход, если подключение не удалось } dataOut.MotorUL = 10; @@ -47,7 +75,7 @@ int main() dataOut.MotorDL = 10; dataOut.MotorDR = 10; - while (1) + for (int i = 0; i < 1000000; i++) { send(Connection, (char*)&(dataOut), sizeof(dataOut), 0); recv(Connection, (char*)&(dataIn), sizeof(dataIn), 0); @@ -58,7 +86,8 @@ int main() std::cout << "-----------------------------------------------------------" << std::endl; //std::this_thread::sleep_for(std::chrono::seconds(1)); } - + + CloseConnection(Connection); system("pause"); }