Untitled

mail@pastecode.io avatar
unknown
c_cpp
a year ago
2.9 kB
3
Indexable
Never
//client.c

int main() {

    

                //Declare variables
            int sock, num_bytes;
            struct sockaddr_in servaddr;
            char* buffer = malloc(1024*sizeof(char));

            // Create socket
            sock = socket(AF_INET, SOCK_STREAM, 0); // create a socket with the given domain, type and protocol
            if (sock < 0) { // check if socket creation was unsuccessful
                printf("Error creating socket\n"); // print an error message
                return 1; // exit the program with an error code
            }

            // Fill in server address information
            memset(&servaddr, 0, sizeof(servaddr)); // fill the memory with 0s
            servaddr.sin_family = AF_INET; // set the address family to IPv4
            servaddr.sin_port = htons(SERVER_PORT); // set the server port number
            if (inet_pton(AF_INET, SERVER_ADDRESS, &servaddr.sin_addr) <= 0) { // convert the server address from text to binary
                printf("Invalid address or address not supported\n"); // print an error message if the conversion fails
                return 1; // exit the program with an error code
            }
            // Connect to server
            if (connect(sock, (struct sockaddr *)&servaddr, sizeof(servaddr)) < 0) { // Try to connect to the server
                printf("Error connecting to server\n"); // If connection fails, print error message
                return 1; // Return 1 to indicate an error has occurred
            } else {
                printf("\n************Connected to the server************\n"); // If connection succeeds, print success message
            }
            
            buffer = get_validated_input();

           
            num_bytes = send(sock, buffer, 1024, 0); // Send input data to server

            if (num_bytes < 0) {
                printf("Error sending data to server\n"); // If sending data fails, print error message
                return 1; // Return 1 to indicate an error has occurred
            } else {
                 // Pass command and data to server
                printf("\nSending Input Data: '%s' to the Server\n\n", buffer);

            }

            //Receiving data from the server
            char output_string[1024];
            int bytes = read(sock, output_string, 1024); // Receive data from server
            if (bytes < 0) {
                printf("Error receiving data from server\n"); // If receiving data fails, print error message
                return 1; // Return 1 to indicate an error has occurred
            }

            output_string[bytes] = '\0'; // Add null terminator to the end of the string
            printf("Received data: %s\n\n", output_string); // Print output data received from server

            // Close socket
            close(sock);

            return 0;
}