«Сетевые взаимодействия с применением транспортного протокола UDP»
Задание: Задача о наследстве. У старого дона Энрике было два сына, у каждого из сыновей – еще по два сына, каждый из которых имел еще по два сына. Умирая, дон Энрике завещал все свое богатство правнукам в разных долях. Адвокат дон Хосе выполнил задачу дележа наследства в меру своих способностей. Правнуки заподозрили адвоката в укрывательстве части наследства. Требуется создать многопоточное приложение, которое при известных сумме завещания дона Энрике и доле каждого наследника, проверяет честность адвоката. При решении использовать принцип дихотомии. Примечание. Необходимо учесть изощренный ум адвоката, который может не только присваивать себе часть суммы, но и выполнять другие манипуляции с суммой наследства.
Запуск 4-5
gcc client.c -o client
gcc server.c -o server -lrt -lpthread
./server 8000 100 [порт для слиентов и общая сумма наследства]
./client 127.0.0.1 8000 0.1 100 [доля и общая сумма]
./client 127.0.0.1 8000 0.2 100 [доля и общая сумма]
[и так всего 8 клиентов надо запустить по условию]
6-8
gcc external.c -o external
gcc client.c -o client
gcc server.c -o server -lrt -lpthread
./server 8000 8001 100 [порт для клиентов, порт для внешней программы, сумма наследства]
./external 127.0.0.1 8001 [наблюдатель, если задание на оценку 8 то сколько угодно наблюдателей]
./client 127.0.0.1 8000 0.1 100 [доля и общая сумма]
./client 127.0.0.1 8000 0.2 100 [доля и общая сумма]
[и так всего 8 клиентов надо запустить по условию]
Разработать клиент–серверное приложение, в котором сервер (или серверы) и клиенты независимо друг от друга отображают только ту информацию, которая поступает им во время обмена. То есть, отсутствует какой-либо общий вывод интегрированной информации, отображающий поведение системы в целом.
В дополнение к программе на предыдущую оценку необходимо разработать клиентскую программу, подключаемую к серверу, которая предназначена для отображение комплексной информации о выполнении приложения в целом. То есть, данный программный модуль должен адекватно отображать поведение моделируемой системы, позволяя не пользоваться отдельными видами, предоставляемыми клиентами и серверами по отдельности.
В дополнение к предыдущей программе реализовать возможность, подключения множества клиентов, обеспечивающих отображение информации о работе приложения. Это должно позволить осуществлять наблюдение за поведением программы с многих независимых компьютеров.