Есть консольное приложени, работает в диалоговом режиме, т.е. свой шелл. Как малой кровью добавить к нему функцию удаленного управления? Т.е. получить этот шелл с удаленной машины? Исходники доступны, поэтому сделал следующее (изврат конечно, но..) : for (;;) { connfd = accept (listenfd, (struct sockaddr*) &servaddr, (socklen_t*) &len); if (connfd < 0) { perror("accept"); close(connfd); close(listenfd); exit(1); } dup2(connfd , STDIN_FILENO); dup2(connfd, STDOUT_FILENO); dup2(connfd, STDERR_FILENO); close(connfd); while ( (buff = readline("> ")) && ( 0< strlen(buff)) ) { error = luaL_loadbuffer(L, buff, strlen(buff), "line") || lua_pcall(L, 0, 0, 0); // Здесь используется Lua для распарсивания ввода юзера и вызова //соответствующих команд (функций) настоящего шелла. Т.е. Lua //используется в качестве некоего враппера для функций шелла. } } Шелл запускается функцией (скажем iocsh()), функция блокирующая. выход из этой функции в данном случае == останов программы. Т.е. вышеприведенный readline это замена настоящему шеллу. Вопрос в том, как обеспечить требуемый функционал (отдать шелл удаленно) и не делать подобных костылей. Параллельный сервер не требуется, т.е. одновременно один клиент. Вариант с netcat'oм не катит, т.к. приложение должно работать не зависимо от того, подсоединился ли клиент, т.е. общение с клиентом посредством шелла это вторичная задача. Направьте в правильном направлении плз. ЗЫ Опыта разработки под *nix мало...
Ответ на:
комментарий
от Reset
Ответ на:
комментарий
от rymis
Ответ на:
комментарий
от mky
Ответ на:
комментарий
от mr-badguy
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум проблема с сокетами [C] (2009)
- Форум Бесконечный accept() вешает систему (2014)
- Форум Уничтожение дочернего процесса (2004)
- Форум Сокеты (2019)
- Форум Консольный обмен сообщениями (2017)
- Форум Не могу победить TIME_WAIT, как закрывать сокеты? (2010)
- Форум консольный ввод-вывод (ncurses) (2006)
- Форум Как в QEMU завернуть консольный вывод? (2007)
- Новости ncurses - библиотека для консольного ввода-вывода (2006)
- Форум Ввод-вывод (2013)