@oc1tane

В чем разница двух этих кодов?

Изучаю синтаксис программок на arduino.. не могу вникнуть в физический процесс в чем разница двух кодов, при появления клиента?
Код №1
EthernetClient client = server.available();
  if (client) {
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        if (c == '\n' && currentLineIsBlank) {
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println("Connection: close");  
          client.println();
      <b><HTML></b>
          break;
        }
        if (c == '\n') {
          // you're starting a new line
          currentLineIsBlank = true;
        } else if (c != '\r') {
          // you've gotten a character on the current line
          currentLineIsBlank = false;
        }
      }
    }


Код №2
EthernetClient client = server.available();
if (client) { 
  index = 0;
  boolean current_line_is_blank = true;
  while (client.connected()) {
  if (client.available()) {
     char c = client.read();
     if (c != '\n' && c != '\r') {
        clientline[index] = c;
        index++;
        if (index >= BUFSIZ) index = BUFSIZ - 1;
        continue;
}

                
      clientline[index] = 0;
      filename = 0;

По скорости открытия страниц побеждает код №2. Суть в том, что пытаюсь привязать ajax (чтобы не обновлять параметры), но в мануалах и туториалах в основном пример приведен с использованием кода №1.
  • Вопрос задан
  • 231 просмотр
Пригласить эксперта
Ответы на вопрос 1
CityCat4
@CityCat4
Внимание! Изменился адрес почты!
Потому что в первом коде четыре вызова client.println(), которых во втором нет. Насколько быстро выполняется один вызов? А во втором обычные символьные сравнения да присваивания.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы