Меню для 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"
...

Объяснение кода листинга программы

  1. if(CMD[0]=='s') - проверяем, является ли первый символ в команде 's'. Если это так, выполняем следующий код.
  2. send(Sock, piv, sizeof(piv)); - отправляем содержимое переменной piv через сокет с дескриптором Sock.
  3. while(strcmp(CMD,enter)!=0) - входим в цикл while, пока строка CMD не будет равна enter. Функция strcmp возвращает 0, если строки равны, и ненулевое число, если они различаются. ...

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.2 из 5
Похожие ответы