RomanRom2 Posted November 28, 2003 · Report post ну так случилось, что есть у меня в хозяйстве много тачек досовых, на них работает софт, называемый концентратором. он собирает инфу с девайсов по ком-портам (мультипортовка) и по ip (pc-tcp) шлет их мне на nt-ёвую тачку, на сервер. есть ли такая резидентная софтинка, которая бы слушала какой-нить порт и принимала команды? по сути мне нужна только одна - ребут. :) просто такие концентраторы разбросаны по городу и возможности перегрузить их удаленно не всегда бывает. и чтобы изменения в конфигах "вступили в силу" (с) самизнаетекто, требуется перезагрузка тачки. в процессе загрузки конфиги каждый раз сливаются досовым фтп-клиентом с моего же фтп сервера :) вот, гимор развел, правда? :) а что делать... Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
klm Posted November 28, 2003 · Report post Ты мужик умный TSR под ДОС написать сможешь! Так вот, пусть он у тебя каждую минуту проверяет наличие файлика и если есть, предваритьльно грохнув файлик, перезагружает тачку. А файлик заливаешь все тем же фтп. :) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
RomanRom2 Posted November 28, 2003 · Report post хм... как делать, знаю, но ни разу не делал :) не, ты не понял проблемы :) как это я туда по фтп чего залью при работающей тачке? там же не сервер, там клиент, сервер у меня. при загрузке она сливает конфиги. а вот что бы она их начала сливать, ее надо перегрузить... Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
avm Posted November 28, 2003 · Report post хм... как делать, знаю, но ни разу не делал :)там же не сервер, там клиент, сервер у меня. при загрузке она сливает конфиги. а вот что бы она их начала сливать, ее надо перегрузить... pc-tcp через пакетник к сетевой карте обращается? - если да, то можно в сам пакетный драйвер вставить отлов определенного пакета (типа как в WOL)... А что, свой MAC известен же... А кто там занимается непосредственно rs232<->TCP. Не pc-tcp же. Так эта прога своя или чужой .exe с уже несуществующими исходниками, запущенная как основной процесс? Тогда нужно для subj TSR делать... TSR несложно на базе wattcp библиотеки написать, но криво будет работать, поскольку один пакетник через pktmux делить с pc-tcp придется, а это значит никакой стабильности. Кстати в pc-tcp (ох давно это было) был ftp-сервер в самом пакете. Но нужно искать пакет и смотреть. И уже неуверен пускался ли он как TSR (просто вспоминается что пускался). Тогда решение описанное klm правильнее всего! И реализовать очень просто (.com будет байт 200 :)) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
RomanRom2 Posted November 28, 2003 · Report post ага, пакетник. но вообще где как, как стрельнет :) можно и lsl подгрузить... пакетники обычно либо 3com 509 либо pci-ойное 8139. вот я там так сходу не нашел, как отловить нужный пакет и че либо сделать по приходу такого пакета (грубо говоря исполнить батник или екзешник)... да, к сожалению, прога rc232<->tcp не моя, и исходников к ней нет, и не дадут. она и работает как основной процесс. безусловно, нужен trs. пакет pc-tcp у меня есть, и дистрибутивы разных версий, и ключи к ним и все все все... ftpserver как tsr к сожалению не пускается (либо я не нашел как, может как то недокументированно?). понятное дело, что женькино решение обходится в этом случае в 200 байт :) отдельно серверное приложение, слушающее порты и работающее как основной процесс я еще могу написать, отдельно резидент тоже может смогу сбацать, но вот такой trs как мне надо - не уверен... Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
avm Posted November 28, 2003 · Report post Имхо, проблема будет в разделении пакетника через tcpmux на основную прогу и tsr. Выражаться будет в подвисании :) ибо врядли на асме все опишешь и придется использовать сишные либы типа waterlootcp, которые динамически аллокируют буфера по ходу действия. А для tsr это смерть... Имхо тут выход один (он кажется самым простым и правильным) - все такие машинки перевести с lsl на передаланные пекетники. Пакетники подправить (исходники в Crynwr) таким образом: при запуске драйвера, своей функцией формируется блок данных представляющих из себя маску служебного пакета. Желательно что-то типа вроде пакета WOL (4 раза 0xFFFF, потом 6 раз MAC-адрес). Но лучше что-то подлинее/сложнее чтобы не могло совпасть с чем нибудь полезным... В процедуре обработки входного буфера пакетного драйвера ставь вызов своей процедуры, которая по определенной выше маске просканирует приемный буфер, если строки совпали (тоесть принят такой пакет из сети) - делаем ребут (5 байт). После этих изменений компилим новый .com и ставим в качестве нового пакетного драйвера :)). Игра в том, что частично в буфер пакетного драйвера, пакет попасть не может, поэтому в буфере он будет лежать целиком, значит его можно искать как подстроку. Если непонятно объяснился - могу подробнее... Вся переделка - байт 100 :) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
avm Posted November 28, 2003 · Report post Да, совсем нежелательно из tsr исполнять внешние батники и ехешники, поскольку основная прога неизвестно кем писана и как использует памать (отведенную под основной процесс - тоесть всю) по ходу работы. Все действия tsr надежнее делать внутри самого tsr не используя механизм динамического распределения памяти dos. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...