WIZnet Developer Forum

W5500 Disconnect 감지 방법

wiz550io 를 사용하여 제품을 개발하고 있습니다.

client 모드로 사용하는 중이고,
Ethernet을 잘 모르지만, w5500 예제소스를 거의 수정안하고 사용해도 큰 문제는 없었습니다.
(약 5년간 수십대 제작)

다만, 일반적이지 않은 상황에서 disconnect를 감지하지 못하는 경우가 있습니다.
평소에는 문제없는데, 가끔 서버 프로램이 다운되고 다시 시작하면 Connect이 안되서
client도 같이 리셋해야 하는 문제가 있습니다.
(한 두 대면 그냥 하라고 하는데, 수십대라 문제가 발생)

아래는 다른 질문 응답글을 갈무리해왔는데 제 상황과 비슷하지만 해답은 잘모르겠습니다.

현재 구성하신 Client가 Server와 연결하여 동작중인 과정에서
만약 Server가 아무런 명령도 없이종료가 되었다고 가정했을 때,
Client는 Server로 부터 아무런 명령을 못받으면
계속 Established 상태가되어있습니다.
위와같은 상태가 지속될 경우, Client가 Data를 Server측으로 보내고,
만약 Server로 부터 응답이 없으면, Sn_IR_TIMEOUT을 사용하여연결을 끊고
다시 연결을 하게 구성하시면 될 것 같습니다.

해결방법에서 임의의 data를 Server에 보낸다고 하는데, 이건 프로토콜상 문제가 있습니다.
(서버에 수십개의 client가 연결되어 있는데 연결 감지한다고 프로토콜에도 없는걸 보낼 수 없음)

Client입장에서 Server가 강제로 disconnect 됬는지 어떻게 감지를 할까요?

Copyright © 2017 WIZnet Co., Ltd. All Rights Reserved.