Меню для 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, если строки равны, и ненулевое число, если они различаются. ...