---
title: "[W5500] EVB 보드로 연습중인데 UDP 통신해보고 싶습니다."
url: "https://maker.wiznet.io/forum/13336"
markdown_url: "https://maker.wiznet.io/forum/13336/md"
type: "Forum topic"
category: "Ethernet Chips"
author: "www"
created: "2019-05-27T11:34:26+09:00"
last_activity: "2019-05-29T01:43:36+09:00"
language: "ko"
views: 1294
replies: 6
source: "WIZnet Makers forum (https://maker.wiznet.io/forum/)"
---

# [W5500] EVB 보드로 연습중인데 UDP 통신해보고 싶습니다.

## Question

Asked by www on 2019-05-27 in Ethernet Chips.

TCP통신은 성공해서 알겠는데

UDP통신은 이해가 잘안되네요…

TCP와달리 보낼때마다 포트주소랑 IP주소랑 보낸다는건 알겠는데

UDP는 서버,클라이언트 개념이 없는건가요?

socket 함수로 UDP 설정하면 상태레지스터가 UDP 로만 빠지더라고요

그 상태에서 W5500 칩에서 sendto 함수로 PC로 보내려하면 꼭 칩이 먹통이됩니다…

Hercules 프로그램을 사용해서 확인하려는데 어떻게하면 되나요?

## Replies

### Reply 1 by becky, 2019-05-28

안녕하세요

TCP는 접속이 이루어진 target과 1:1 통신만 가능한 반면에
UDP는 매번 다른 target과 송수신이 가능합니다.
Hercules에도 UDP 통신이 있습니다. udp로 포트 open하시고 5500에서 해당 port로 데이터 전송하시면 됩니다.

### Reply 2 by www, 2019-05-28 (in reply to reply 1)

정상적으로 초기화하고 이렇게 프로그래밍할때 문제가 있을까요?
Hercules에는 UDP 탭에서 모듈IP 192.168.1.43 ,포트 5000, 로컬 포트 5500
해놓고 리슨 눌러놓은 상태에서요

wiz_NetInfo gWIZNETINFO = { .mac = {0x30, 0x28, 0x6c, 0xa6, 0xad, 0xaf},
.ip = {192, 168, 1, 2},
.sn = {255, 255, 255, 0},
.gw = {192, 168, 1, 254},
.dns = {203, 248, 252, 2},
.dhcp = NETINFO_STATIC };

int main (void)
{
uint8_t ipwnth[4]={192,168,1,43};
uint8_t sw2_key[12]={83,87,73,84,67,72,80,85,83,72,13,10};

```
socket(0, Sn_MR_UDP, 5000, 0);

while(1)
{
	if(Check_Buttons_Pressed() == BUTTONS_BUTTON1)
	{
		sendto(0, sw2_key,12,ipwnth,5000);
	}
  }
```

}

### Reply 3 by becky, 2019-05-28

hercules에서 localport를 5500으로 하셨으면
sendto에서 포트 5500으로 적으셔야 합니다.

### Reply 4 by www, 2019-05-29

모듈IP는 어떤 IP를 얘기하는건가요??
내 PC의 IP? W5500칩에 저장한 IP?

그리고 sendto 함수 인자중의 ip는 내 PC의 IP로 해야하나요?

hercules에서의 UDP SETUP탭의 find 기능은 무엇인가요
UDP 하려면 무언가 검색이 되야 하는건가요? …

아침부터 도움주셔서 감사합니다…
관련 너무 지식이 없어서 죄송하네요…ㅜㅜ

### Reply 5 by becky, 2019-05-29

안녕하세요

우선 W5500에서
맨처음에
W5500의 네트워크 정보인 ip, mac, subnet, gateway 등등을 설정합니다.
port의 경우에는 socket별로 다르게 설정이 가능하기때문에 socket()함수에서 port를 지정합니다.
sendto에서는 오로지 destination(현재경우PC)값을 입력하시면 됩니다.

![](https://avatars.discourse-cdn.com/v4/letter/w/d9b06d/48.png) www:

> 그리고 sendto 함수 인자중의 ip는 내 PC의 IP로 해야하나요?

따라서 위의경우 PC IP로 지정해야되는것이 맞습니다

![](https://avatars.discourse-cdn.com/v4/letter/w/d9b06d/48.png) www:

> hercules에서의 UDP SETUP탭의

저도 이부분은 사용을 안해서 모르겠습니다만
Required parameters에서 해당 정보들을 입력하고 Find devices를 누르면 해당하는 device가 있는지 찾는것 같습니다

UDP 통신을 하려는 것이시면 UDP Setup 탭 말고 UDP탭에서 Listen하시면 됩니다.

### Reply 6 by www, 2019-05-29

아… 답변 보자마자 깨달았습니다. 감사합니다
port와 local port 이제야 알겠네요

---

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