Мы в Telegram
Добавить новость
103news.com
Работа
Апрель
2023

Нужна помощь с клиент-серверными программами на C под Linux

0
Нужна помощь с двумя простыми клиент-серверными программами на C под Linux с использованием очередей POSIX и разделяемой памяти и семафоров и с четырьмя высоконагруженными клиент-серверными приложениями на основе сокетов.

1.1 Сервер создает очередь POSIX, располагает там строку “Hello”. Клиент обращается к очереди, забирает строку “Hello” и отвечает строкой “Hi”. Сервер читает эту строку и выводит ее на экран. Эта программа практически написана, но, видимо, есть ошибка. Отправлю свой вариант.
1.1.2 Реализовать тот же функционал с помощью System V.

1.2 Программа создает сегмент разделяемой памяти, вторая подключается к нему. Первая пишет слово “Hello”, вторая читает, отвечает “Hi”, первая выводит на экран. Делаем через примитивы синхронизации - семафоры. Эту написать с нуля.
1.2.2 Реализовать тот же функционал с помощью System V.

2.1 Многопроцессная система написания сервера
Слушающий (главный) сервер, получив запрос от клиента, создает поток, в котором создает новый сервер и подключает к нему клиента (передает клиенту информацию для подключения к новому серверу). В случае UDP создается новый сокет и новая привязка. Эту привязку слушающий сервер отправляет клиенту. В случае TCP сделали accept в слушающем сервере и в новый процесс/поток передали дескриптор отщепленного клиента. А слушающий сервер уходит в accept слушать новую заявку от нового клиента. Как только приходит новый клиент, выходим из accept, получаем новый дескриптор, передаем его процессу/ потоку и снова уходим в accept ждать запрос от других.

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

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

2.4 Схема 2.3, но с мультиплексированием (предпочтительно epoll), при которой каждый из обслуживающих процессов может обслуживать сразу несколько клиентов. Для TCP, UDP.




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

Собянин рассказал о работе сервиса «Вместе с культурой»





Москва

Армяне России поддерживают движение «Тавуш во имя Родины»


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

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

Moscow.media
Москва

Собянин рассказал о развитии завода «Москвич»



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

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

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

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

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

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

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




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

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

Искусство продвинутого анализа в спортивном прогнозировании

Полезные приложения для поклонников спортивной ходьбы

Никакой магии! В спортивном прогнозировании не бывает безусловных выигрышных стратегий


Даниил Медведев

Даниил Медведев одолел 121-ю ракетку мира Меджедовича и вышел в 1/8 финала Рима



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