---
title: "Multiple/Concurrent UDP receiving with W5500 chip"
url: "https://maker.wiznet.io/forum/9464"
markdown_url: "https://maker.wiznet.io/forum/9464/md"
type: "Forum topic"
category: "Ethernet Chips"
author: "jwlee156"
created: "2024-09-11T18:08:08+09:00"
last_activity: "2024-09-25T15:45:13+09:00"
language: "ko"
views: 7
replies: 1
source: "WIZnet Makers forum (https://maker.wiznet.io/forum/)"
---

# Multiple/Concurrent UDP receiving with W5500 chip

## Question

Asked by jwlee156 on 2024-09-11 in Ethernet Chips.

질문: W5500+TMS320F28379D 이용하여 UDP 통신 프로그래밍하고 있는데요.

현재 수신 IP/port 2, 송신 IP/port 3(수신처 2 + 송신전용 1)이며 개별 수신, 송신에 다른 socket을 설정(socket 0, 1 수신, 2, 4, 5 송신)

사용하고 있습니다.

2곳의 수신처로부터 개별 수신(하나는 안보내고 하나의 IP/port만 보내고 그에따른 송신만) 하는 경우는 잘 동작합니다.

질문은

Multiple/Concurrent UDP receiving: 2곳에서 동시(Concurrently)에 보내올때는 몇번 또는 수십번 통신후 수신이 끊어지고 마는 현상이 발생합니다. 당연히 수신에 따른 송신도 안되구요. 원인/대책(방법)을 부탁드립니다.

Tx buffer issue: 수신시는 버퍼(2k 사용)가 패킷 사이즈로 나누어지지 않아도 잘 수신되는거 같습니다. 그런데, 송신은 2k 버퍼에 송신패킷이 48 bytes인데 버퍼크기만큼 채우고 처음으로 넘어갈때 문제가 생깁니다. 서큘라버퍼 넘어갈때 그 크기(남은 데이터가 처음으로 가지않고) 만큼 데이터가 손실되는 현상이 생기는데요. 현재는 그 이전에 socket을 리셋해서 대응하고 있는데요, 대안이 없을까요?

## Replies

### Reply 1 by jwlee156, 2024-09-25

1. **Multiple/Concurrent UDP Receiving Issue:** -

- **해결책:** - 수신 버퍼의 크기를 늘려보세요. -- 수신 소켓 0: 버퍼 2kB, packcet size는 34 byte이고 수신 소켓 1: 버퍼 2kB, packcet size는 48 byte입니다. 각각 10ms(또는 그 이상) 마다 보내고 있읍니다. 소켓의 수신 대기열을 주기적으로 확인하고, 데이터가 쌓이지 않도록 최대한 빠르게 처리하고 있구요. 멀티스레딩은 현재 OS(RTOS)가 없어서 고려하지 않고 있습니다. 별도의 스레드도 마찬가지로 구현하지 않고 있구요.

2. **Tx Buffer Issue:** - 송신 시 버퍼가 가득 차고 처음으로 돌아갈 때 데이터 손실이 발생하는 문제는 버퍼 관리의 문제로 이해하고 있는데요

. - **해결책:** - 송신 버퍼는 2kB로 설정되어 있고, 버퍼의 끝에서 문제가 발생됩니다. 송신 패킷이 48bytes인데 끝에서 시작으로 넘어갈때 시작부분에 해당되는 , 데이터가 써지지 않는 것 같습니다. W5500에 송신후 버퍼를 비우는 기능이 있나요?

혹 전화로 문의 통화할수가 있나요?

---

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