#include #include #include #include #include #include int main(int args, char ** argv){ struct sockaddr_in sad; sad.sin_port = htons(5141); sad.sin_addr.s_addr = INADDR_ANY; sad.sin_family = AF_INET; int skt = socket(AF_INET, SOCK_STREAM, 0); bind(skt, (struct sockaddr *)(&sad), sizeof(struct sockaddr_in)); listen(skt, 5); int client_fd; struct sockaddr_in client_addr; for(;;){ socklen_t client_address_length; client_fd = accept(skt, (struct sockaddr*)&client_addr, &client_address_length); printf("Accepted a connection from %s\n", inet_ntoa(client_addr.sin_addr)); int numbers[2]; ssize_t readlen = recv(client_fd, numbers, sizeof(numbers), MSG_WAITALL); printf("We read %ld bytes and will add %d and %d\n", readlen, numbers[0], numbers[1]); int result = numbers[0] + numbers[1]; write(client_fd, &result, sizeof(result)); close(client_fd); } close(skt); return 0; }