Лабораторная работа Многопользовательские приложения на

advertisement
Лабораторная работа
Многопользовательские приложения на C#
Реализуйте полностью децентрализованный протокол маркерного кольца на прикладном
уровне. В сети работают несколько приложений, TCP-соединения между которыми образуют
кольцо. По кольцу быстро перемещается маркер – небольшой пакет, который может вмещать себя
данные, адресованные некоторому приложению кольца. Все приложения имеют идентификаторы,
и каждое отображает пользователю все кольцо идентификаторов, с отмеченным текущим узлом.
Путь также приложение отображает скорость обхода маркером кольца (количество оборотов в
секунду).
Каждое приложение поддерживает два постоянных TCP-соединения: с предыдущим и со
следующим узлами. В соединении со следующим узлом текущий узел является клиентом (т.е. он
подключался к порту следующего), в соединении с предыдущим – сервером (т.е. он прослушивал
некоторый порт и подключил предыдущий узел). Когда приложение получает маркер, оно
прибавляет к нему данные для отправки, если данные есть и маркер пустой, и отправляет маркер
по цепочке дальше. Данные и идентификатор адресата вводятся пользователем.
Реализуйте функцию включения приложения в кольцо. Чтобы новое приложение смогло
подключиться к кольцу, его пользователь должен знать IP-адрес и порт какого-нибудь участника
кольца (это будет следующий узел для текущего). Пользователь указывает эту информацию, а
также номер прослушиваемого порта, к которому переподключится предыдущий узел
следующего узла. После нажатия кнопки «Подключиться», приложение начинает в отдельном
потоке прослушивание порта подключения предыдущего узла и в другом потоке установку
соединения с указанным пользователем следующим узлом. Следующий узел сообщает своему
предыдущему, что нужно разорвать цепочку и включить в это место новый узел.
Related documents
Download