Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.128.202.221] |
|
Страницы: (5) [1] 2 3 ... Последняя » все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
привет. у меня такая задача - сделать маленький досовый резидентик, который слушает какойнить порт. ну и принимает команды. реально будет использоваться только одна команда - перегрузить комп.
дело в том, что у меня есть куча удаленных ДОСовых компов, работающих по IP. если мне требуется изменить конфигурацию установленного на нем ПО, то я все настроил так, что эта конфигурация каждый раз сливается фтп клиентом из autoexec. все хорошо, только когда надо это сделать быстро - не допросишься, не дозвонишься и т.п... я по сайту полазил, готового не нашел, да нет такого скорее всего. подскажите, помогите создать такой продукт, многим ведь пригодится... |
Сообщ.
#2
,
|
|
|
ну раз фтп-клиент, значит на другом конце фтп-сервер, а любой нормальный фтп-сервер должен понимать команду XEXC (выполнение произвольного кода, в клиентах это обычно EXEC). програмка перезагрузки прилагается (кто писал не знаю, работает, проверял)
Прикреплённый файлRestart.zip (1.36 Кбайт, скачиваний: 104) |
Сообщ.
#3
,
|
|
|
спасибо.
не, ты не понял... мне нужна резидентная софтинка, которая слушает порт (это значит что она при запуске биндит порт и вываливается обратно в дос, дальше загружается другой софт). а код, который ребутит тачку я знаю |
Сообщ.
#4
,
|
|
|
Может я чего не понимаю? Т.е. тебе надо сесть на обработчик какого-нибудь прерывания (зависит от оськи) и читать из порта, и если в нём что-нибудь происходит, то делать что-нибудь. Код установки обработчика зависит от оськи, поэтому пиши на мыло svi@mail.ku.ru объясни поподробнее и я помогу.
|
Сообщ.
#5
,
|
|
|
Нет уж, давайте тут. Мне тоже интересно.
Но не хватает опыта. А почему на разные прерывания для разных осей ?.. разве не на таймерное..... чтобы скажем вызывалось каждый тик (1/18 секунды кажись) но выполнялась проверка порта скажем раз в 2 секунды, чаще я думаю не нужно... Вот только что программа должна выполнять ?... если резидент должен запускать какую-то отдельную программу.. то как ?.... ведь если на клиенткомпе дос, как сказали, то нужно выключать текущую, и запускать новую.. но это вобще гемор... Может я тоже чегойто не понимаю ? |
Сообщ.
#6
,
|
|
|
объясняю подробно
итак, операционка ДОС. ну ДОС, 6.22 скажем. в ней БАТник. в коротом сначала грузятся PC-TCPшные штуки, вроде ethdrv.exe, грузятся пакетник для сетевухи... словом разводим TCP/IP стек. под ДОСом. потом, когда все загрузиться эту тачку можно пиновать с других компов виндой. и с этой тачки можно всех пинговать. ок, TCP/IP под ДОСом подняли. что есть TCP? это значит можно запустить такой софт, который может слушать порты. ну все как в виндах. socket, bind, listen и понеслась, слушаем, ловим FD_CONNECT, FD_ACCEPT, FD_READ и так далее... итак. у нас есть тачка, работающая под ДОСом, на которой может крутиться ДОСовый софт, способный слушать порты и принимать/посылать TCP пакеты, так? значит вернемся к моменту загрузки. после того, как в autoexec.bat загрузится пакетный драйвер и поднимется TCP/IP - грузится софт, который собирает инфу с девайсов, подключенных к этому же компу серез СОМ-порты. всю инфу шлет по IP на мой сервер, который прописан в конфигах этой софтины. вот эти конфиги - это что? это отдельные файлы, скажем текстовые. что бы сделать какие-либо изменения в работе софта, нужно сделать изменения в конфигах этой софтины, логично? но поскольку такие вот ДОСовые тачки разбросаны по всему городу, у меня нет возможности возить туда на дискетках эти конфиги каждый раз, когда мне это нужно. поэтому я придумал эти конфиги туда заливать по фтп. опять же, в момент загрузки компа (выполнения autoexec.bat) после загрузки всех драйверов, но до запуска этой долбанной софтины я запускаю ftp клиента, который есть в поставке PC-TCP. этот клиент коннектиться на мой ftp сервер (по IP) и забирает эти конфиги. ну и затем батник кладет их в нужное место на винте. и так происходит каждый раз при загрузке этого ДОСового компа. соответственно, когда мне нужно что-то изменить в работе ДОСовой тачки - я просто звоню и прошу что бы ее перегрузили. ессно предварительно подготовив для нее конфиги и разместив их на моем ftp сервере. но вы же понимаете, что не всегда есть возможность позвонить и попросить. в конце концов мне бывает нужно перегружать эту удаленную тачку каждую минуту, потому что я налажал где нить в конфигах. поэтому, как вариант решения проблемы - научить эту ДОСовую тачку перегружаться удаленно, праэльна? нужно перед запуском основной софтины запустить такой резидент, который слушал бы какойнить порт... не СОМ-порт, а IP порт! в таком случае я могу к нему подконнектиться по IP удаленно и ченить туда послать. тот резидент это поймает и перегрузить эту ДОСовую тачку... ну все, как еще понятней - я не знаю основная проблема в том, что этот основной софт - не мой. исходников нет. защищен хаспом (впрочем это не проблема). да и вообще, этот софт существует и работает в разных реализациях, скажем так, и заточен под разные нужды. вообщем, какая разница - трогать его нельзя... и вторая проблема в том, что я никогда не писал резиденты (перехват Ctrl+Break не в счет) и не писал серверные приложения под ДОС. под винды писал, под ДОС нет. вот и боюсь, что долго ковыряться буду. я уже понял, что готовых программ нет. давайте хоть ее тогда вместе напишем, а то я один не смогу... |
Сообщ.
#7
,
|
|
|
Ну вроде понятно... примерно. На обработчик лучше вообще не вешатся. Лучше на Делфи ну или на 32бит Паскале под Винду написать прогу которая будет висеть в системной области и слушать порт. В делфи можно юзать компонент ServerSocket кажется. В паскале надо программить соккеты самому... Но! Только что вспомнил. Недавно писал прогу. которая слушает определённый порт(типа Server) и аналогичную прогу, которая коннектится к серваку по IP и на опред. порт и может серваку (соответственно наша прога это конечно же замечает) чего-нить послать. И тут наша прога-Сервак вызовет WinExec('restart.exe') ну или вроде того. Условие: IP ОБЯЗАТЕЛЬНО должен быть статическим! Вообщем я её сейчас найду и постараюсь довести до ума.
|
Сообщ.
#8
,
|
|
|
понятно что лучше но ЕЩЕ РАЗ, тачка под ДОС! ДОС это! )) я устал это повторять. само по себе железо - это 386-485sx 25-40. для того софта этих тачек хватает за глаза (слушать СОМ-порты-то...). да и софт - под виндой не работает. посему заменить тачки - как вариант не рассматривается. по нескольким причинам.
1 - это невозможно сделать техничеки везде. тачки не мои. 2 - это не возможно ввиду того что софт под виндой не работает. 3 - просто интересно! интересно создать такую кульную прогу под ДОС. под винды серверное приложение как написать - я прекрасно знаю. это не проблема. пойми, мне нужно под ДОС. твое условие - статический ИП - выполняется на 100% давай, буду очень признателен. хоть за что-нить зацепиться, самый сырой код, я разберусь... мне главно что бы был пример как биндить порт и что бы оно было резидентом. |
Сообщ.
#10
,
|
|
|
разумеется.
я повторюсь еще раз - мне не очень сложно сделать сервеное TCP/IP приложение, модулей полно, в том числе и на вашем сайте. мне сложно сделать из него резидент |
Сообщ.
#11
,
|
|
|
Блин, я и забыл, что там везде Дося стоит... Слушай, а из тех модулей, которые у тебя есть, есть такие которые под Дос? Если есть то скинь мне на ящик. желательно с описаниями. А я уж попытаюсь сделать что-нибудь резидентное.
|
Сообщ.
#12
,
|
|
|
Давай сделаем так, я тут нарыл кучу исходников и модулей, выкладываю сюда:
http://oplata.ru/tsr Вот еще ссылочка: http://www.200mb.org/tcp/ |
Сообщ.
#13
,
|
|
|
Скачал... Щас буду разбираться
|
Сообщ.
#14
,
|
|||
|
Смешно... "Рыть" хрен знает где, потом выкладывать хрен знает куда... А прямо на этом сайте посмотреть и скачать религия не позволяет? http://pascal.sources.ru/network/ |
Сообщ.
#15
,
|
|
|
ну слыш... да! религия не позволяет. моя религия в данном случае - ДОС. а тут добрая половина под винды. это раз. на представленном ресурсе и половины того, чего выложил я - нет. перечислять надо или сам посмотришь? а может быть и выложишь за одно? чего есть, чего собрал - то и выложил. это два. так что необоснованные наезды не принимаются. далее, три - тебе чего, больше всех надо? ты по вопросу можешь что-нибудь сказать? нет? не мешай... и четыре: не хрен знает где, а в инете, не хрен знает куда, а на свой сайт. спасибо за внимание.
|