client

 avatar
unknown
c_cpp
22 days ago
2.0 kB
2
Indexable
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>

#define PIPE_NAME "/tmp/encrypted_chat_pipe"
#define MAX_MESSAGE_LENGTH 256

void reverse_encrypt(char *str) {
    int len = strlen(str);
    for (int i = 0; i < len / 2; i++) {
        char temp = str[i];
        str[i] = str[len - i - 1];
        str[len - i - 1] = temp;
    }
}

int main() {
    char message[MAX_MESSAGE_LENGTH];
    int pipe_fd;

    // Отваряме наименуваната тръба за запис
    pipe_fd = open(PIPE_NAME, O_WRONLY);
    if (pipe_fd == -1) {
        perror("open failed");
        exit(1);
    }

    while (1) {
        // Четене на съобщение от потребителя
        printf("Enter message to send: ");
        fgets(message, sizeof(message), stdin);

        // Премахваме новия ред от края на съобщението
        message[strcspn(message, "\n")] = 0;

        // Изпращаме съобщението в тръбата
        write(pipe_fd, message, strlen(message) + 1);

        // Отваряме тръбата за четене
        int pipe_fd_read = open(PIPE_NAME, O_RDONLY);
        if (pipe_fd_read == -1) {
            perror("open failed for reading");
            exit(1);
        }

        // Четем от тръбата (криптираното съобщение)
        int bytes_read = read(pipe_fd_read, message, sizeof(message) - 1);
        if (bytes_read > 0) {
            message[bytes_read] = '\0';
            printf("Received encrypted message: %s\n", message);

            // Декодиране на съобщението (обратно на Reverse Encryption)
            reverse_encrypt(message);
            printf("Decoded message: %s\n", message);
        }

        close(pipe_fd_read);
    }

    close(pipe_fd);
    return 0;
}
Editor is loading...
Leave a Comment