- #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;
- }