Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

lab_4 / Shared_memory_server

.py
Скачиваний:
0
Добавлен:
12.02.2024
Размер:
1.46 Кб
Скачать
#!/usr/bin/env python3
import os
import mmap

def server():
    shared_memory_size = 1024
    # Открываем файл разделяемой памяти
    shared_memory_fd = os.open("Shared Memory", os.O_CREAT | os.O_RDWR)

    # Устанавливаем размер файла разделяемой памяти
    os.ftruncate(shared_memory_fd, shared_memory_size)

    # Разделяем память
    shared_memory = mmap.mmap(shared_memory_fd, shared_memory_size)

    previous_message = b''  # Переменная для хранения предыдущего сообщения

    while True:
        # Читаем из разделяемой памяти
        shared_memory.seek(0)  # Переходим к началу разделяемой памяти
        message = shared_memory.read(shared_memory_size).rstrip(b'\0')

        # Проверяем, изменилось ли сообщение
        if message != previous_message:
            print(f"Получено сообщение от клиента: {message.decode('utf-8')}")
            previous_message = message  # Обновляем значение предыдущего сообщения

        if message.lower() == b'exit':
            break
    # Закрываем разделяемую память и файловый дескриптор
    shared_memory.close()
    os.close(shared_memory_fd)

if __name__ == "__main__":
    server()
Соседние файлы в папке lab_4