![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| etni |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 4.6.2008 Репутация: нет Всего: нет |
"разработать сервер командной строки -приложение, вызывающее интерпритатор командной строки (cmd.exe) с переоопределением стандартных потоков ввода\ввывода. Сервер должен обеспечивать прием ДОС команд через дуплексный именованный канал пересылать их на исполнение интерпитатору принимать результаты их исполнения и отправляить их по дуплексному каналу обратно клиенту. Сервер должен автоматически перезапускать cmd.exe в случаем завершения его работы а также после окончания сеанса свзяи с клиентом Разработать клиент командной строки -консольное приложение подключающееся к серверу командной строки Клиент должен осуществлять ввод ДОС команд с консоли пересылать их на сервер принимать и выводить на консоль результаты исполнения ДОС команд."
так звучит поставленное передо мной задание. Язык просят Delphi,но для реализации нужно использовать системные функции Windows. В приложенном файле мои скромные потуги(написано в делфи билдере)...виснет после 1й команды...помогите довести до ума пожалуйста! По возможности с коментариями. Спасибо! Присоединённый файл ( Кол-во скачиваний: 9 )
3u3u.rar 68,75 Kb |
|||
|
||||
| Magik |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 6.12.2007 Репутация: 2 Всего: 2 |
ИМЕЮ МНЕНИЕ !
Задача ваша сложная, и , в принципе, вряд ли решаема рамками форума. Дело в том, что интерпретатор (мне ближе слово анализатор) командной строки написать не так уж сложно, и с этим можно справиться. Сложнее будет дальше, когда вам придется заниматься организацией перенаправления потоков. Существуют уже разработанные международные протоколы передачи по каналам связи (как я понял вы используете дуплексный канал, и не собираетесь изобретать колесо) . В этих протоколах описаны все виды пакетов передаваемой информации и их структура. Следующий этап – формирование пакетов (в протоколах это – ASDU). И далее, организовать передачу пакетов в канал связи, через устройства ввода/вывода. На ваше усмотрение, - СОМ-порт по стыкам 232, 422, 485, (и другие порты), Ethernet. Эти вопросы решены на уровне узкоспециализированного использования. Сразу скажу, что в И-нете инфа по этим вопросам ничтожна мала. Так что, вам не позавидуешь. Что касается протоколов, то лично мне известны IEC101, IEC104. Они расчитаны на передачу как текстовой информации, так и различного рода телеметрии. Ну, если , ваша цель укладывается в рамки работы клиента и сервера на одной машине, то это намного упрощает решение. |
|||
|
||||
| etni |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 4.6.2008 Репутация: нет Всего: нет |
Дальше развивать программу надобности нет,т.к. это что-то типа курсовой работы.Однако вот я зашёл в тупик. Клиент-сервер должны работать на одной машине(по крайней мере при получении задания этот пункт не упоминался
Если для вас это не очень сложно - напишите ваш вариант протокола обмена,при котором "анализатор" не будет висеть. ps мне советовали сделать это через функцию Createfile... |
|||
|
||||
| Rennigth |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 8 Всего: 76 |
etni, задача интересная, но ресурсоемкая. разработка такой штуковины может занять от ~3 до ~30 дней), и врятли за просто так кто-то возметься...
Если ты зашел в тупик, скажи в чем проблема? а не общими словами, что что-то не так, помогите, посмотрите сорцы. а что это? с ее помощью много чего можно сделать
имхо, гоу-ту в центр помощи, а лутше сам сделай. ...или задавай вопросы посуществу. -------------------- (* Honesta mors turpi vita potior *) |
||||
|
|||||
| Felan |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 284 Регистрация: 2.8.2007 Где: Самара Репутация: 2 Всего: 7 |
etni, Сделай все по телнету.
У в INDY есть почти готовый сервер. И любой текстовый клиент будет работать. -------------------- // Любая сложная система - это темный лес. Каждый в этом лесу протаптывает свои тропинки, по ним и бегает. Лишь изредка, сходя с них, мы находим много интересного, а порою и страшного. |
|||
|
||||
| etni |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 4.6.2008 Репутация: нет Всего: нет |
Felan
а можно поподробнее,т.к. я нуб в принципе,да ещё и на форуме этом новичок... |
|||
|
||||
| etni |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 4.6.2008 Репутация: нет Всего: нет |
с инди вроде разобрался,спасибо!
|
|||
|
||||
| Felan |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 284 Регистрация: 2.8.2007 Где: Самара Репутация: 2 Всего: 7 |
Да что тут расписывать-то... Есть компонент TIdCmdTCPServer, это практически готовый Telnet сервер, нужно только команды добавить.
Telnet протокол - самый простейший текстовый протокол обмена. Пишешь данные обычным текстом, завершение команды Enter, грубо говоря. Вобщем твой сервер берет и напрямую в cmd.exe шлет все, что получил, и ответы возвращает. Получится просто удаленная консоль. Если конкретные вопросы будут, помогу, чем смогу. -------------------- // Любая сложная система - это темный лес. Каждый в этом лесу протаптывает свои тропинки, по ним и бегает. Лишь изредка, сходя с них, мы находим много интересного, а порою и страшного. |
|||
|
||||
![]()
|
| Правила форума "Delphi: WinAPI и системное программирование" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |