---
title: "아래 소스는 아두이노 코드 입니다,"
url: "https://maker.wiznet.io/forum/14266"
markdown_url: "https://maker.wiznet.io/forum/14266/md"
type: "Forum topic"
category: "Ethernet Chips"
author: "gajognet"
created: "2021-06-16T10:36:09+09:00"
last_activity: "2021-06-18T08:06:42+09:00"
language: "ko"
views: 935
replies: 2
source: "WIZnet Makers forum (https://maker.wiznet.io/forum/)"
---

# 아래 소스는 아두이노 코드 입니다,

## Question

Asked by gajognet on 2021-06-16 in Ethernet Chips.

안녕 하세요,

추신: 제가 달아 놓은 주석 문이 맞는지 확인 부탁 드립니다,
맞지 않다면 무엇이 잘못 되었는지 답변글 부탁 드립니다,
주석문만…

#include &lt;SPI.h>
#include &lt;Ethernet.h>

byte mac = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
};

IPAddress ip(192, 168, 1, 177);
EthernetServer server(80); //포트 셑팅 및 포트 열기

void setup() {

Ethernet.begin(mac, ip); //w5500에 ip,subnet,gateway,mac… 등등 이더넷 장비(w5500)에
// 셑팅 맞나요,
server.begin(); //w5500에 기본 셑팅된 것을 서버 모드로 listurn 연결하고 대기 한다, //Sn_CR, LISTEN 수신 대기 모드(서버모드) 이 상태를 이야기 하는지요?
}

void loop() {

EthernetClient client = server.available(); //서버에 클라이언트에서 메세지가 들어 오면, true 참을 리턴,
//client 는 listurn이 이미된 상태 인가요? 즉) //Sn_CR, LISTEN 수신 대기 모드(서버모드)
if (client) { //클라이언트로 부터 들어오는 데이타가 있다면 참, 없다면 거짓

```
boolean currentLineIsBlank = true;

while (client.connected()) { // 제가 묻고 싶은것은 이때 listurn 되는가요? 
	                         //아니면 server.begin(); 이때 listurn 되는가요? 
				//client.connected(), 무엇을 connected() 한다는것인지 이해가 안됩니다,
  if (client.available()) { // 클라이언트로 부터 데이타가 들어 오면,
    char c = client.read();
    Serial.write(c);
    
	if (c == '\n' && currentLineIsBlank) {
      
      client.println("HTTP/1.1 200 OK");
      client.println("Content-Type: text/html");
      client.println("Connection: close");
      client.println("Refresh: 5");
      client.println();
      
	  client.println("<!DOCTYPE HTML>");
      client.println("<html>");
      
      for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
        int sensorReading = analogRead(analogChannel);
        client.print("analog input ");
        client.print(analogChannel);
        client.print(" is ");
        client.print(sensorReading);
        client.println("<br />");
      }
      client.println("</html>");
      break;
    }
    if (c == '\n') {
      
      currentLineIsBlank = true;
    } else if (c != '\r') {
      
      currentLineIsBlank = false;
    }
  }
}
delay(1);
client.stop();
```

}
}

---

감사 합니다,

## Replies

### Reply 1 by becky, 2021-06-17

안녕하세요

먼저 client는 listen을 하지않습니다.
서버가 listen 상태일경우 client가 접속을 시도하는 것입니다.

gajognet:

> EthernetClient client = server.available(); //서버에 클라이언트에서 메세지가 들어 오면, true 참을 리턴,
> //client 는 listurn이 이미된 상태 인가요? 즉) //Sn_CR, LISTEN 수신 대기 모드(서버모드)

말씀드렸다시피 client는 listen 을 하지않습니다.
이 예제는 서버를 구동시키는 예제로 client 객체를 생성하여 server와의 연결상태 데이터 수신등을 read 하기 위한용도로 사용됩니다.

gajognet:

> if (client) { //클라이언트로 부터 들어오는 데이타가 있다면 참, 없다면 거짓

데이터 수신이 아니라 server.available을 통해 생성한 client 객체가 유효한지 확인하는것입니다.

gajognet:

> ```
while (client.connected()) { // 제가 묻고 싶은것은 이때 listurn 되는가요? 
	                         //아니면 server.begin(); 이때 listurn 되는가요? 
				//client.connected(), 무엇을 connected() 한다는것인지 이해가 안됩
```

별도의 target으로 client를 구동하여 w5500 sever에 접속할경우 상태가 connected됩니다. 이것을 체크하는것입니다.

### Reply 2 by gajog, 2021-06-18

이해를 잘 했습니다,
한번 시도해 보겠습니다,

감사 합니다,

---

Source: https://maker.wiznet.io/forum/14266
