#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #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 servern"); 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] = '�'; // Null terminate received data printf("Server: %sn", message); } else { if (bytes_received == 0) { printf("Server disconnectedn"); } else { perror("recv"); } break; } } else { printf("Invalid message formatn"); } } // Close connection close(client_fd); return 0; }