Меню для Telnet - C (СИ)
Формулировка задачи:
Доброго времени суток!
Подскажите пожалуйста с такой вот проблемой: В прошивке написанной на си делаю что-то вроде интерфейса для Telnet. Чтоб при подключении к железке через Telnet ввести "s" а в ответ "Enter a command " вводишь набор символов и они записываются в буфер пока не нажмешь на ентер.
Вот как я понял это, но чет нихрена не работает. Помогите пожалуйста
//подключился к железке через telnet //ввожу s unsigned int len; unsigned char CMD[MAX_BUF_SIZE]; len = recv(Sock, CMD, len); // Считал S send(Sock, CMD, len); // отправил обратно и у видел S в телнет char piv[20]="Enter a Command "; char CommandBuf[50]; // массив для команды if(CMD[i]=="s") // а вот тут проблема send(Sock, piv, sizeof(piv)); while(CMD!="enter" ) // Тут вообще затык. { for(int i=0;i<=50;i++) CommandBuf[i] = CMD; } send(Sock, CommandBuf, sizeof(CommandBuf));
Решение задачи: «Меню для Telnet»
textual
Листинг программы
if(CMD[0]=='s') // сравниваем с символом, а не со строкой send(Sock, piv, sizeof(piv)); while(strcmp(CMD,"enter")!=0 ) // сравнение строки CMD со строкой содеоржащей текст "enter" ...
Объяснение кода листинга программы
if(CMD[0]=='s')
- проверяем, является ли первый символ в команде 's'. Если это так, выполняем следующий код.send(Sock, piv, sizeof(piv));
- отправляем содержимое переменной piv через сокет с дескриптором Sock.while(strcmp(CMD,
enter)!=0)
- входим в цикл while, пока строка CMD не будет равнаenter
. Функция strcmp возвращает 0, если строки равны, и ненулевое число, если они различаются. ...
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д