Untitled
unknown
plain_text
5 months ago
2.5 kB
3
Indexable
#include <arpa/inet.h> #include <iostream> #include <sys/socket.h> #include <unistd.h> #include <cstring> #include <thread> #include <chrono> #include <cerrno> #define PORT 8080 #define SERVER_IP "127.0.0.1" // Localhost void sendMessageToServer(const char* message) { int sock = 0; struct sockaddr_in serv_addr; char ack_buffer[1024] = {0}; // Create socket if ((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0) { std::cerr << "Client: Socket creation failed, errno: " << errno << " - " << strerror(errno) << std::endl; return; } serv_addr.sin_family = AF_INET; serv_addr.sin_port = htons(PORT); // Convert IPv4 and IPv6 addresses from text to binary form if (inet_pton(AF_INET, SERVER_IP, &serv_addr.sin_addr) <= 0) { std::cerr << "Client: Invalid address or Address not supported, errno: " << errno << " - " << strerror(errno) << std::endl; close(sock); return; } // Connect to the server if (connect(sock, (struct sockaddr*)&serv_addr, sizeof(serv_addr)) < 0) { std::cerr << "Client: Connection Failed, errno: " << errno << " - " << strerror(errno) << std::endl; close(sock); return; } // Send the message to the server if (send(sock, message, strlen(message), 0) < 0) { std::cerr << "Client: Message send failed, errno: " << errno << " - " << strerror(errno) << std::endl; close(sock); return; } std::cout << "Client: Message sent - " << message << std::endl; // Wait for acknowledgment from the server int ack_read = read(sock, ack_buffer, 1024); if (ack_read < 0) { std::cerr << "Client: Acknowledgment read failed, errno: " << errno << " - " << strerror(errno) << std::endl; } else if (ack_read == 0) { std::cout << "Client: Server disconnected" << std::endl; } else { std::cout << "Client: Received acknowledgment - " << ack_buffer << std::endl; } close(sock); // Close the connection } int main() { int message_count = 5; // Number of messages to send int interval = 3; // Interval in seconds for (int i = 1; i <= message_count; ++i) { std::string message = "Message " + std::to_string(i); sendMessageToServer(message.c_str()); // Wait for the specified interval before sending the next message std::this_thread::sleep_for(std::chrono::seconds(interval)); } return 0; }
Editor is loading...
Leave a Comment