client
unknown
c_cpp
9 months ago
2.0 kB
6
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