#include #include #include #include #include #include #include #define PORT 8080 #define SERVER_IP "localhost" int main() { int client_fd; struct sockaddr_in server_address; char message[1024]; // Create socket client_fd = socket(AF_INET, SOCK_STREAM, 0); if (client_fd < 0) { perror("socket"); exit(1); } // Set server address memset(&server;_address, 0, sizeof(server_address)); server_address.sin_family = AF_INET; server_address.sin_port = htons(PORT); inet_pton(AF_INET, SERVER_IP, &server;_address.sin_addr); // Connect to server if (connect(client_fd, (struct sockaddr *)&server;_address, sizeof(server_address)) < 0) { perror("connect"); exit(1); } printf("Connected to server\n"); while (1) { // Get target ID and message from user printf("Enter target ID (0 - 4) and message (separated by space): "); fgets(message, sizeof(message), stdin); // Extract target ID and message content char *target_id_str = strtok(message, " "); char *message_c "\n"); if (target_id_str != NULL && message_content != NULL) { int target_id = atoi(target_id_str); // Send target ID and message to server sprintf(message, "%d %s", target_id, message_content); // Combine ID and message int bytes_sent = send(client_fd, message, strlen(message), 0); if (bytes_sent < 0) { perror("send"); break; } // Receive and print server response (optional) int bytes_received = recv(client_fd, message, sizeof(message), 0); if (bytes_received > 0) { message[bytes_received] = '\0'; // Null terminate received data printf("Server: %s\n", message); } else { if (bytes_received == 0) { printf("Server disconnected\n"); } else { perror("recv"); } break; } } else { printf("Invalid message format\n"); } } // Close connection close(client_fd); return 0; }