![]() |
|
Модераторы: Poseidon |
![]()
|
|
| libertine |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 12.4.2008 Репутация: нет Всего: нет |
здра. посчастливилось мне получитьзадание - моделирование работы телефонной сети (СМО, потоки). реализовать - на Visual C++. может кто-нибудь знает, как это лучше сделать?
думаю примерно так: на форме каким-нибудь образом визуализовать выбор звноящего абонента и того, кому этот абонент звонит. описать переменную массив структур типа, в каждой из которых хранилась бы пара "разговаривающих" абонентов, и в отдельном потоке постоянно проверять ее содержимое(допустим, если тот, кому звонит абонент, уже с кем-то разговаривает, то возвращать "занято"). на этом мысль заканчивается.. подскажите направление ее развития) кода пока нет, показывать нечего |
|||
|
||||
| destrd |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 1.10.2008 Репутация: нет Всего: 4 |
Ну я бы сделал как-то так. Есть сервер он же АТС, я как клиент к нему подключаюсь (типа у меня есть телефон). Эта информация сохранилась в неком списке. Далее. Чтобы мне позвонить посылается команда online (и заносится в список online)и если этот номер не числится в списке online (самому себе нельзя позвонить) осуществляется набор номера. Соответственно проверяем, а есть ли этот номер в списке подключенных к АТС. Если нет соответственное сообщение. Далее, если всё хорошо, в отдельном потоке уже читаем сообщения от одно и другого и соответственно пишем другому одному. Т.е. заюзали сеть и потоки.
--------------------
Some people, when confronted with a problem, think, "I known, I'll use regular expressions." Now they have two problems. -- Jamie Zawinski in comp.lang.emacs |
|||
|
||||
| libertine |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 12.4.2008 Репутация: нет Всего: нет |
то есть мне нужно будет писать отдельно серверное и клиентское приложение? и сколько запущено будет клиентских приложений, столько будет абонентов.. за номер абонента можно принять id процесса. в каждом запущенном клиентском приложении - список экземпляров других запущенных кл.приложений - их id, типа "справочник" или "список контактов"
получается "звонок" - это реальный обмен какими-то данными между двумя "звонящими", а не только запись на сервере, что мол - эти двое разговаривают? брр.. |
||||
|
|||||
| destrd |
|
||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 1.10.2008 Репутация: нет Всего: 4 |
Да, а как же по другому эмулировать АТС Зачем? Когда клиент подключается к АТС сообщает свой номер.
Зачем клиенту это знать. Клиент говорит свой номер, сервер его знает. Можно вообще выдавать номера. Сам сервер их будет генерировать.
Конечно. Ну у вас же СМО. Системы массового обслуживания? Вы поднимаете сервер, и клиенты к нему подключаются и потом общаются. В принципе ничего сложного, нормальная задача для лабы. Даже курсовик можно сделать Я может что-то не договариваю, потому что для меня это очевидно, так что спрашивайте. P.S. Кстати, если это лаба, то можно нормально по ушам преподу съездить, что типа и сети и потоки, и ограничиться одной лабой, если её нормально развить, типа смс какие-нить добавить, статистику какую-нибудь на сервер прикруть Это сообщение отредактировал(а) destrd - 15.11.2008, 23:18 --------------------
Some people, when confronted with a problem, think, "I known, I'll use regular expressions." Now they have two problems. -- Jamie Zawinski in comp.lang.emacs |
||||||
|
|||||||
| libertine |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 12.4.2008 Репутация: нет Всего: нет |
они самые..это тема ргз(почти курсовик и есть), а предмет - операционные системы, т.ч. смо - полностью самостоятельное изучение.
аська получится я еще уточню у препода, что от меня хотят, потому что прочитала и испугалась, если честно) а вообще спасибо большое Это сообщение отредактировал(а) libertine - 16.11.2008, 02:07 |
||||
|
|||||
| destrd |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 1.10.2008 Репутация: нет Всего: 4 |
Ну смысл один и тот же P.S. Мобилка то у вас есть наверное, вот и думайте, и второй вызов и т.д. и т.п. Есть с чего брать мысли. Это сообщение отредактировал(а) destrd - 16.11.2008, 02:15 --------------------
Some people, when confronted with a problem, think, "I known, I'll use regular expressions." Now they have two problems. -- Jamie Zawinski in comp.lang.emacs |
|||
|
||||
| libertine |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 12.4.2008 Репутация: нет Всего: нет |
а я пиво не пью тогда примерно для клиентского приложения должно быть: первым делом окно авторизации, или регистрации, если впервые "абонент" тут.. ну, по аналогии с той же аськой. после авторизации - окно с полем для ввода номера, куда он хочет позвонить. кнопка вызов, сброс и принять вызов. итого: запущено 2 клиента, один набирает номер другого, нажимает вызов. затем второй должен нажать на кн принять вызов. до этого момента первый видит "гудки". когда "трубка снята" 2м абонентом, пошла передача данных.. каких-то как-то у сервера вообще может не быть GUI.. да? типа службы.. и функциями его будет: записывать в текстовый файл данные о зарегистрированных абонентах, искать абонента в этом файле, когда он авторизуется. если не найдет - предлагать регистрироваться и регистрировать. еще должен вестись список разговаривающих абонентов. запись туда будет добавляться, когда один "позвонил", а второй "снял трубку". после этого данные от первого передаются серверу, а сервер передает их второму, и наоборот. после нажатия кнопки "сброс" сервер удаляет запись из списка текущих разговоров.. как-то так. подправьте, если есть стратегические ошибки |
|||
|
||||
| destrd |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 1.10.2008 Репутация: нет Всего: 4 |
А второй слышит звонки Ага. Ну в общем всё верно написали. А вот серверу может быть тоже GUI стоит следать. Чтобы смотреть кто разговаривает, сколько. И подслушать --------------------
Some people, when confronted with a problem, think, "I known, I'll use regular expressions." Now they have two problems. -- Jamie Zawinski in comp.lang.emacs |
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |