본문 바로가기
아두이노

아두이노 이더넷 웹서버 만들기 -#4

by 오징어땅콩2 2020. 4. 5.
반응형

복습 차원에서 중간 복습을 하자 
소스가 복잡하고 어려워 보이지만 사실 별것은 없다,
가장 핵심은 텍스트 문장을 만들고, 시리얼 프린터로 출력하는게 끝이다.
시리얼 프린터 여러번 사용하는것은 본인을 별로 좋아 하지 않는다.
그냥 한번만 사용한다. 

client.println(buf);
결국 웹서버의 역활은 클라이언트, 접속자가 원하는 파일을 찾아서 읽어서 전송하는 역활을 하는것이다.
이번에는 그냥 코딩으로 만들어진 문장을 출력했다. 
SD카드에서 읽어서 한다면 좀더 다양한 웹서버가 구현이 될것이다.
아래 문장을 만든다면 다양한 방법이 있겠지만 본인은 이렇게 만든다.

 
<!DOCTYPE html>
<html>
<body>
<h1>My First Heading</h1>
</body>
</html>
 
 
 char*p;
 char buf[100];
 p = buf;
 
 p+=sprintf(p,"<!DOCTYPE html>");
 p+=sprintf(p,"<html>");
 p+=sprintf(p,"<body>
 p+=sprintf(p,"<h1>My First Heading</h1>");
 p+=sprintf(p,"</body>");
 p+=sprintf(p,"</html>");
 client.println(buf);

 

동일한 역활을하고 동일한 문장이지만 본인은 디버깅을 위해서 아래를 선호하는편이다.

 

 
// send a standard http response header
 client.println("HTTP/1.1 200 OK");
 client.println("Content-Type: text/html");
 client.println("Connection: close");  // the connection will be closed after completion of the response
 client.println("Refresh: 5");  // refresh the page automatically every 5 sec
 client.println();
 client.println("<!DOCTYPE HTML>");
 client.println("<html>");
 // output the value of each analog input pin
 for (int analogChannel = 0; analogChannel < 6; analogChannel++) 
 {
   int sensorReading = analogRead(analogChannel);
   client.print("analog input ");
   client.print(" is ");
   client.println("<br />");
 }
 client.println("</html>");
 
 
 
 // send a standard http response header
 char*p;
 char buf[100];
 p = buf;
 
 p+=sprintf(p,"HTTP/1.1 200 OK");
 p+=sprintf(p,"Content-Type: text/html");
 p+=sprintf(p,"Connection: close");  
 p+=sprintf(p,"Refresh: 5");  // refresh the page automatically every 5 sec
 p+=sprintf(p,"\n");
 p+=sprintf(p,"<!DOCTYPE HTML>");
 p+=sprintf(p,"<html>");
 // output the value of each analog input pin
 for (int analogChannel = 0; analogChannel < 6; analogChannel++) 
 {
   int sensorReading = analogRead(analogChannel);
   p+=sprintf(p, "analog input ");
   p+=sprintf(p, "%d", analogChannel);
   p+=sprintf(p, " is ");
   p+=sprintf(p, "%d", sensorReading);
   p+=sprintf(p,"<br />");
 }
 p+=sprintf(p,"</html>");
 client.println(buf);
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter

 

 

 

댓글