w5300, UDP, TCP 동시 사용 기술문의 드립니다.

안녕하세요

W5300과 ATSAM3 를 연동하여 사용하고 있는 사용자입니다.

MCU Flash에 HTML을 저장시켜 서버와 유사하게 사용하고 소켓 1~5 까지 할당,

여기에 UDP 소켓을 6을 할당하여, SNTP 시간 정보를 가져오는 프로그램을 작성하였는데

처음 PC로 HTML에 접속하면 설정한 기능과 SNTP 시간을 잘 받아오는데

다른 PC로 접속하거나, 접속이 종료된 상태에서 다시 접속을 하면,

PC 에서 MCU에 있는 HTML에 접속을 할수없습니다.

그리고, UDP 소켓을 Close(6) 하면 SNTP 시간이 처음 한번만 가져오고. 정지한 상태로 있습니다.

SNTP와 HTML을 동시 사용하기위한 방안에대한 도움을 요청드립니다.

감사합니다.

안녕하세요 :slight_smile:

UDP로 SNTP에서 시간을 받아왔다면 그 다음 부터는 그 값으로 내부 타이머를 돌리시면 됩니다.

소켓 1~5까지 HTTP server로 같은 포트로 여셨나요? 그리고 해당 server의 동작 과정이 connection이 끊어진 상태에서 어떻게 동작하는지 알 수 없기 때문에 명확한 답변을 드릴 수 가 없을것 같습니다. 접속이 종료 된다면 해당 소켓이 다시 listen 상태로 돌아가는지 확인해주시고 나머지 소켓들 역시 listen 상태가 맞는지 확인해 주시기 바랍니다. 또한 http server 측의 응답이 없을 수 있습니다. 해당 server firmware를 확인해 주시기 바랍니다.

안녕하세요
답변감사합니다.

소켓 1~5까지 HTTP server는 같은 포트로 열었습니다. for 문을 이용하여 1~5까지 순차적으로 열었습니다.

그리고, MCU에 Flash에 HTML 여러개를 묶어서 ROM으로 저장하였습니다.

보드에 RTC가 없고, MCU 타이머 시간이 불일정하여, SNTP 시간을 계속 받아서 시간을 표시하고 있습니다.

답변 주신대로 소켓의 상태부터 다시 파악 하겠습니다.

답변 감사합니다.

해결하였습니다. :smiley:

socket의 상태를 확인하니 인터넷이 끈어진 상태에서도

계속 ESTABLISHED 상태로 고정되어 있어서 추가적인 html 페이지 접속이 안되는 현상이었습니다.

피드벡 되는 데이터가 0 인경우에 한하여 disconnection 시켜주니 정상적으로 동작하였습니다.

도움 주셔서 감사합니다. :laughing:

해결하셨다니 다행이네요 :slight_smile: