Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 03.01.2020
Сообщений: 15

Взаимодействием между процессами на Си

03.12.2023, 16:35. Показов 1134. Ответов 9

Студворк — интернет-сервис помощи студентам
Описание: Диспетчерская станция управления полетами на
земле ведет мониторинг за полетами самолетов с земли. Один раз в
секунду опрашивая самолеты об их координатах и высоте. Если
самолеты находятся в опасной близости, то диспетчер может подать
самолету команду об изменении направления движения. Если
диспетчер не подал команду об изменении полета, то может произойти
авиакатастрофа.

Задание: Написать консольное приложение-сервер и оконное
приложение-клиент. Сервера – это самолеты, при первом запуске у
сервера генерируется случайная координата и высота зоны
обслуживания диспетчерской станции. Далее генерируется
направление полета (точка с координатами на краю зоны
обслуживания). Самолет меняет свое местоположение вдоль
направления полета. Клиент – это диспетчерская станция, в которой
идет отображение плоскости полета вдоль земли и плоскости с
разрезом высот. Если самолеты находятся в опасной близости, то они
окрашиваются в желтый цвет. Если произошло столкновение, то они
окрашиваются в красный цвет, и сервера самолетов, попавших в
аварию завершают работу.

Мне нужно выстроить хотя бы консольное взаимодействие (без графической оболочки).
Мне нужно сдать лабу, а понимания того, как это реализовать самому, совсем нет. Спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.12.2023, 16:35
Ответы с готовыми решениями:

Управление процессами, передача данных между процессами
Постановка задачи 1. Осуществить обмен текстовыми и графическими данными между двумя приложениямиP1 и P2 с выводом информации в заданную...

Связь между электромагнитным взаимодействием и правилом октета-дуплета
Добрый день, уважаемые пользователи форума! Я не являюсь специалистом в данной области и ознакамливаюсь с ней для расширения...

Переключение между процессами
Здравствуйте! У меня вознкла проблемка с процесами. Стоит такая задачка: Процесс 1 открывает файл, создает процесс 2, посылает...

9
Windows must die
828 / 835 / 102
Регистрация: 23.11.2021
Сообщений: 4,855
Записей в блоге: 15
03.12.2023, 17:16
Тут малость попутали в задании: на кой черт каждому "самолету" заводить сервер? Как в этом случае диспетчер, будучи клиентом, узнает, к скольки серверам и каким именно ему подключаться?
Как раз таки сервер один - диспетчерская. Каждый "самолет" - клиент, подключается к серверу и с ним работает.

Заводить по одному потоку на каждого клиента смысла нет: гораздо проще организовать поллинг. Это и межпотоковое взаимодействие упростит (т.к. не будет никаких потоков). Вот так можно организовать суперлуп для сервера. Соответственно, периодически сервер опрашивает всех клиентов на предмет их координат (просто подключаем одно и то же сообщение всем подключенным клиентам). Принимая данные, помещает их в массив сообразно номеру клиента. Ну и на каждой итерации проверяет, насколько близко друг к другу разные "самолеты". Это выполняется простым перебором. Если находим слишком близкие - посылаем одному из пары команду следовать другим курсом. Если видим, что разность координат близка к нулю, считаем, что они таки столкнулись - диспетчеру можно доставать пистолет и кончать с собой.
0
599 / 421 / 136
Регистрация: 02.10.2008
Сообщений: 1,796
Записей в блоге: 1
03.12.2023, 17:46
Andrey15year,
Тут вам во фриланс надо. Если с сервером ещё можно помочь, то с графическим клиентом под linux намного сложнее, т.к. вам надло определиться с UI-фреймворком.
0
0 / 0 / 0
Регистрация: 03.01.2020
Сообщений: 15
03.12.2023, 17:51  [ТС]
Я тоже думал просто мысленно послать препод в далекое эротическое и сделать диспетчерскую сервером, а самолеты клиентами... По логике работы программы у меня вопросов нет, я себе примерно так все и представлял. Но я вообще не понимаю, как реализовать это дело. Буду очень благодарен, если поможете с кодом
0
Windows must die
828 / 835 / 102
Регистрация: 23.11.2021
Сообщений: 4,855
Записей в блоге: 15
03.12.2023, 17:53
Цитата Сообщение от drfaust Посмотреть сообщение
надо определиться с UI-фреймворком
Для консольного хватит ncurses. GUI - пережиток прошлого ☺
Ссылочку на свой сниппет клиент-серверного взаимодействия я сбросил. Остается лишь содержимым наполнить.
А вот так можно простейшую графику в ncurses рисовать.
0
0 / 0 / 0
Регистрация: 03.01.2020
Сообщений: 15
03.12.2023, 17:56  [ТС]
Цитата Сообщение от drfaust Посмотреть сообщение
Тут вам во фриланс надо. Если с сервером ещё можно помочь, то с графическим клиентом под linux намного сложнее, т.к. вам надло определиться с UI-фреймворком.
В QNX есть Photon, на котором это дело реализуется не сложно, с ним я разобрался. Мне нужно сейчас именно взаимодействие между сервером и клиентами реализовать, а уж связать это дело с UI я смогу.

Добавлено через 3 минуты
Цитата Сообщение от Eddy_Em Посмотреть сообщение
Ссылочку на свой сниппет клиент-серверного взаимодействия я сбросил. Остается лишь содержимым наполнить.
Я такого рода код вижу впервые в своей жизни, вообще не понимаю, что там происходит...
0
Windows must die
828 / 835 / 102
Регистрация: 23.11.2021
Сообщений: 4,855
Записей в блоге: 15
03.12.2023, 18:00
Цитата Сообщение от Andrey15year Посмотреть сообщение
вообще не понимаю, что там происходит...
Так нужно не сюда, а идти K&R и Богатырева читать, учить С.
0
0 / 0 / 0
Регистрация: 03.01.2020
Сообщений: 15
03.12.2023, 18:01  [ТС]
Цитата Сообщение от Eddy_Em Посмотреть сообщение
Вот так можно организовать суперлуп для сервера
Можно ли это сделать через знакомые мне MsgSend(), MsgRecieve(), MsgReply?

Добавлено через 1 минуту
Цитата Сообщение от Eddy_Em Посмотреть сообщение
Так нужно не сюда, а идти K&R и Богатырева читать, учить С.
Мне только лабу сдать надо Хдд
0
Windows must die
828 / 835 / 102
Регистрация: 23.11.2021
Сообщений: 4,855
Записей в блоге: 15
03.12.2023, 18:33
Цитата Сообщение от Andrey15year Посмотреть сообщение
MsgSend(), MsgRecieve(), MsgReply?
Так это ж не сокеты, а "ядерные" IPC. Если задача - именно через IPC делать, то да, мой вариант не подходит.
0
0 / 0 / 0
Регистрация: 03.01.2020
Сообщений: 15
04.12.2023, 02:55  [ТС]
Все верно, мне именно через эти команды нужно сделать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.12.2023, 02:55
Помогаю со студенческими работами здесь

Канал между процессами
Задача у программы такова. Имеется основная программа(main) и две дополнительных(prc1 и prc2). В prc1 и prc2 стоит прогресс бар, который...

Сообщения между процессами
Имеется GUI на wx. Пишу диалог (wx.Dialog). В один прекрасный момент необходимо запустить локальный веб сервер. Использую Flask. Запускать...

Взаимодействия между процессами
У нас лаба по ОС идёт. Дали задание, которое я не понимаю как делать. В некотором файле (назовем его numbers.dat) записаны 10 цифр в...

Обмен данными между процессами
Добрый день. У меня есть программа отправителя и программа получателя. Я не совсем понимаю, как FindWindow() должно искать моё окно. У меня...

Обмен данными между процессами
Здравствуйте! Опишу задачу: Необходимо запускать приложение, через связанное с ним расширение. То-есть есть моя программа, которая...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru