Мы в Telegram
Добавить новость
103news.com
Работа
Июль
2023

Клиент-серверные программами на C под Linux

0
Задание по очередям сообщений 1.1
Нужно написать чат с общей комнатой. Клиент и сервер. Сервер создает очередь, в которую записываются все сообщения от всех пользователей. Когда клиент присоединяется, он уведомляет сервер о том, что он новый клиент, может указать свое имя. Это имя рассылается всем остальным клиентам, которые подключены к этому серверу (читают из одной очереди, которая обслуживает сервер). Нужно создать служебное сообщение, в котором хранится список всех подключенных клиентов, и, как только новый клиент подключился, очередь расставили, соответственно, другие клиенты забрали эти сообщения и обновили у себя список подключенных пользователей, и теперь они видят еще одного пользователя. Когда кто-то пишет сообщение, оно располагается в очередь, сервер читает его и рассылает его всем клиентам, которые в данный момент подключены к данному чату. Рассылает - означает нужно столько раз продублировать это сообщение с нужными приоритетами, чтобы клиенты могли его забрать каждый свое. Можно использовать многопоточность. Чат одновременно читает сообщения и ожидает ввода пользователя. Как увязать блокирующие функции: создаем два потока - один всегда ждем сообщения от сервера, крутится в цикле и их обрабатывает и обновляет список сообщений и список пользователей, второй всегда ждет ввода с клавиатуры и, как только получает, отправляет на сервер.

Задание по общей памяти и семафорам 1.2
Такой же чат нужно выполнить с использованием общей памяти и семафоров.

2.1 Многопроцессный клиент-сервер. Есть пример реализации.
При запуске случающий (главный) сервер порождает пул заранее готовых процессов/потоков с обслуживающими серверами. Слушающий сервер следит за пулом обслуживающих серверов и при подключении клиента идентификатор свободного сервера возвращает клиенту, клиент подключается к нему. При количестве клиентов больше количества обслуживающих серверов создается новая порция обслуживающих серверов. Если количество клиентов уменьшается, лишние процессы уничтожаются. Для уведомления слушающего сервера можно использовать массив (только для потоков - слушающий сервер будет искать в массиве 0 и перераспределять на него нагрузку), канал, очереди сообщений, сигналы. Реализовать для TCP или UDP.

2.2 Клиент-сервер на основе модели Производитель-потребитель.

Запускаем слушающий сервер, он создает очередь обслуживания и пул обслуживающих серверов. Есть клиент, он посылает заявку серверу, сервер ставит заявку в очередь запросов. В это время любой свободный сервер забирает заявку, решает ее, ставит в очередь ответов, слушающий сервер забирает ее оттуда и передает ее клиенту. Либо обслуживающий сервер сам может передать заявку клиенту обратно (для этого в очереди запросов должен быть идентификатор клиента). Реализовать для TCP или UDP.




Губернаторы России
Москва

Сергей Собянин: в ТиНАО создадут новые управы районов





Москва

Глава Центробанка РФ: "Я вижу в ЦФА большой потенциал"


Губернаторы России

103news.net – это самые свежие новости из регионов и со всего мира в прямом эфире 24 часа в сутки 7 дней в неделю на всех языках мира без цензуры и предвзятости редактора. Не новости делают нас, а мы – делаем новости. Наши новости опубликованы живыми людьми в формате онлайн. Вы всегда можете добавить свои новости сиюминутно – здесь и прочитать их тут же и – сейчас в России, в Украине и в мире по темам в режиме 24/7 ежесекундно. А теперь ещё - регионы, Крым, Москва и Россия.

Moscow.media
Москва

Сергей Собянин: в ТиНАО создадут новые управы районов



103news.comмеждународная интерактивная информационная сеть (ежеминутные новости с ежедневным интелектуальным архивом). Только у нас — все главные новости дня без политической цензуры. "103 Новости" — абсолютно все точки зрения, трезвая аналитика, цивилизованные споры и обсуждения без взаимных обвинений и оскорблений. Помните, что не у всех точка зрения совпадает с Вашей. Уважайте мнение других, даже если Вы отстаиваете свой взгляд и свою позицию. 103news.com — облегчённая версия старейшего обозревателя новостей 123ru.net.

Мы не навязываем Вам своё видение, мы даём Вам объективный срез событий дня без цензуры и без купюр. Новости, какие они есть — онлайн (с поминутным архивом по всем городам и регионам России, Украины, Белоруссии и Абхазии).

103news.com — живые новости в прямом эфире!

В любую минуту Вы можете добавить свою новость мгновенно — здесь.

Музыкальные новости

Анастасия Волочкова

В коротеньких шортах: Волочкова раздвинула ноги в кабинете стоматолога




Спорт в России и мире

Алексей Смирнов – актер, которого, надеюсь, еще не забыли

Стартовал финальный этап всероссийского футбольного турнира «Будущее зависит от тебя»

Строительные леса обрушились у здания спортшколы на Новочеремушкинской улице

Семьи из Подмосковья поборются за выход в финал конкурса «Это у нас семейное»


Уимблдон

«Подача на победу на Уимблдоне». Гвардиола – о заключительном туре АПЛ



Новости Крыма на Sevpoisk.ru


Булат Окуджава

Стало известно об отмене выступления Урганта на вечере памяти Окуджавы



Частные объявления в Вашем городе, в Вашем регионе и в России