![]() |
|
Модераторы: feodorv |
![]()
|
|
| Bulat |
|
|||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: нет Всего: 57 |
Romikgy, не совсем, не срабатывает. лана тут уже надо лезть в другой раздел
-------------------- менеджер по кодеврайтингу |
|||
|
||||
| ptr |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 661 Регистрация: 31.5.2006 Где: Новосибирск Репутация: 9 Всего: 14 |
Bulat, чтобы это сработало нужно чтобы в скрипте в начале было прописано:
и скрипт был установлен как исполняемый. Или можно так запустить
Это сообщение отредактировал(а) ptr - 24.8.2006, 12:15 -------------------- Единственный способ определить границы возможного - это выйти за эти границы, в невозможное. Артур Кларк. |
||||
|
|||||
| Bulat |
|
|||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: нет Всего: 57 |
ptr, по-моему ты не совсем понял, мне нужно в исходнике С программы, обратится к перловому скрипту передать ему данные, после его срабатывания получить данные. А ты мне по-моему немного про другое сейчас............
-------------------- менеджер по кодеврайтингу |
|||
|
||||
| ptr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 661 Регистрация: 31.5.2006 Где: Новосибирск Репутация: 9 Всего: 14 |
Bulat, да не я всё правильно понял
Это сообщение отредактировал(а) ptr - 24.8.2006, 12:42 -------------------- Единственный способ определить границы возможного - это выйти за эти границы, в невозможное. Артур Кларк. |
|||
|
||||
| Bulat |
|
|||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: нет Всего: 57 |
ptr, при компиляции он ругается на perl, во-первых
-------------------- менеджер по кодеврайтингу |
|||
|
||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: нет Всего: 317 |
превед.
схема такая: 1. пишем скрипт, проверяем, что он работает нормально: принимает ввод со стандатного ввода, и выдаёт ответ на канал стандартного вывода. 2. пишем программу, которая пишет на стандартный вывод: 2.а "echo "данные для скрипта" | 2.б "команду запуска скрипта" вывод собирается в буффер. в результате команда, которую твой клиент дожен слать такая: 'echo \"DATA1=1 DATA2=2.....и т.д.\" | /полный/путь/к_скрипту/myscript.pl\n' и это должно быть содержимым буффера. посылается буффер с такими данными. далее, собирается результат, в другой буффер. 3. пишем клиент tcp, который открывает сокет на 23 порту сервера, даёт имя пользователя, пароль, получает prompt, и только тогда запускает нашу программу, которая должна написать буффер - в сокет. возможно есть библиотека создания ssh клиента - так будет лучше посылать данные - в зашифрованном виде. если будут проблемы, пеши исчо. Это сообщение отредактировал(а) bilbobagginz - 24.8.2006, 13:07 -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
| Bulat |
|
|||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: нет Всего: 57 |
bilbobagginz, стоп-стоп
-------------------- менеджер по кодеврайтингу |
|||
|
||||
| Bulat |
|
|||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: нет Всего: 57 |
Я бы даже сказал так, чуть раньше я выложил ссылку, там есть маленькое клиент-серверное приложение, вот как мне его развернуть до того что мне надо, в частности подцепить перловый скрипт на стороне сервера?
-------------------- менеджер по кодеврайтингу |
|||
|
||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: нет Всего: 317 |
не пиши всё сам. скачай клиент телнета ( сорс. ):
http://prdownloads.sourceforge.net/console...ce.zip?download тебя интересует найти момент кода, когда начинает ожидаться ввод пользователя, и добавить туда команды. потому, что ты не хочешь сам реализовывать полный клиент телнет ( канал контроля и т.д. ... в лом ) клиент телнета - это не только послать команды: а куда результат прийдйёт ? короче, ищем где заканчивается вся процедура начального коннекта, и там: 0. предварительно узнаем на какой дескриптор надо писать, с какого читать, infd, outfd. в этом месте тебе уже будет известно и infd - канал ввода команд ( для write ), и outfd - канал вывода ( для read ). 2. втыкаем примерно такой _простой_ код:
ещё одна тема: когда найдёшь то место, где ждут ввода, там возможно всё работает пошагово ( символ за символом ). поэтому, может быть придётся буффер посылать по буковкам, и результат собирать тщательно. понятна ? Добавлено @ 14:38 то же самое можно проделать через ssh-client, но там не пользуются простыми read/write, а какими-то другими функциями. Добавлено @ 14:42 в общем, нудное это дело. А нельзя воспользоваться RPC ? Это сообщение отредактировал(а) bilbobagginz - 24.8.2006, 14:41 -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
| Bulat |
|
||||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: нет Всего: 57 |
bilbobagginz, вот что у меня есть:
И я не пишу на С, хотя вот сейчас пришлось сталкнуться, как мне вот это вот нарастить, как подцепить перловый скрипт? Вот это у меня работает, сервера общаются между собой(порты ест-но поменял, здесь те что из примера) Это сообщение отредактировал(а) Bulat - 24.8.2006, 14:49 -------------------- менеджер по кодеврайтингу |
||||
|
|||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: нет Всего: 317 |
ты привёл пример tcp сервера и клиента.
тебя интересует что то другое ( большее ). давай, объясни что именно тебе надо посылать, и что получать ( имеется в виду - сколько байт, как часто, сколько параллельных запусков и т.д. ) 1. для запуска программы, и сбора результата, тебе нужно как минимум 2 канала параллельно. 2. решение использовать клиент телнет, и сервис телнет, не единственное: можно написать специальный сервер запускной ( по-моему есть уже готовый, называется rexec). но , по-моему использовать готовый телнет клиент - целесообразно. -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
| Bulat |
|
|||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: нет Всего: 57 |
bilbobagginz, вообщем вижу очень хорошо разбираешься так что вот вся ситуация:
Есть qmail, мне надо отредактировать один исходник - vchkpw.c, а именно найти отправную точку в которой я добавлю "клиента", который будет отправлять login, на другой сервер, где "сервер", там я буду принимать этот логин, передавать его перловому скрипту, который будет проверять балланс в базе(с перловым скриптом не проблема) и если - то возвращать, проще говоря false, и true если +. Получив потверждение или отказ в С "сервере" я его обратно отправляю на "клиента", а именно в vchkpw.c, а там дополнительное условие и т.д. Вот такая задача. К сожалению не пишу сам на С P.S. Да, такая еще ерунда, до этого скрипта еще дохожу так: залезаю на сервак по SSH, оттуда на железку через telnet, вот там и лежит этот перловый скрипт. Кстати если что-то нужно делать по-другому или по-проще, весь во внимании Это сообщение отредактировал(а) Bulat - 24.8.2006, 17:14 -------------------- менеджер по кодеврайтингу |
|||
|
||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: нет Всего: 317 |
в принципе, я тебе выдал всё, для реализации, нужно только посидеть и посмотреть как что состыковывается.
1. ) А насчёт ssh, его можно форвардить: делаешь предварительное подключение к серверу, определяя туннель на порт 23 на "железке" ( если-б я знал что она такое.) с локального, напр. тоже 23 порта. потом, твоё приложение подключается на 127.0.0.1 по опрту 23, и соединяется "напрямик" к "железке". т.е. приложению по фигу, что у него нет прямого доступа к "железке". 2) для полного разжёвывания мне надо присесть и объясняться, а времени нет, пардон. посмотри, как работает телнет сервер-клиент, и будет тебе хорошо. пока. -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
| Bulat |
|
|||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: нет Всего: 57 |
bilbobagginz, последняя просьба может ссылки какие знаешь конкретно вот на это, чтоб можно было еще и почитать если вдруг что не понятно будет
-------------------- менеджер по кодеврайтингу |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Сети | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |