#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <arpa/inet.h> #include <netinet/in.h> #include <sys/socket.h> #define PORT 12345 #define MAX_CLIENTS 5 int main() { int server_socket, new_socket; struct sockaddr_in server_addr, new_addr; socklen_t addr_size; char buffer[1024]; // Create a socket server_socket = socket(AF_INET, SOCK_STREAM, 0); // Set up the server address structure server_addr.sin_family = AF_INET; server_addr.sin_port = htons(PORT); server_addr.sin_addr.s_addr = INADDR_ANY; // Bind the socket to the server address bind(server_socket, (struct sockaddr*)&server_addr, sizeof(server_addr); // Listen for incoming connections listen(server_socket, MAX_CLIENTS); printf("Server listening on port %d...\n", PORT); // Accept a client connection addr_size = sizeof(new_addr); new_socket = accept(server_socket, (struct sockaddr*)&new_addr, &addr_size); while (1) { // Receive a message from the client recv(new_socket, buffer, sizeof(buffer), 0); printf("Client: %s\n", buffer); // Send a response to the client printf("Server: "); fgets(buffer, sizeof(buffer), stdin); send(new_socket, buffer, sizeof(buffer), 0); if (strncmp(buffer, "exit", 4) == 0) { printf("Server exiting...\n"); break; } } close(new_socket); close(server_socket); return 0; }