WIZnet Developer Forum

w5500 TCP Client 모드 구현 시 cable빠진후 상태체크 변화 없음

[W3150A+] [W5100] [W5200] [W5300] [W5500] [W5100S]

사용 중인 제품 명을 위와 같이 제목에 명기하시면 더 빠른 응답을 받으실 수 있습니다.
본 Template을 삭제 후 문의 내용을 남겨 주세요. :slight_smile:

안녕하세요 W5500를 사용하여 TCP Client모드로 기능 구현 중인데요, 정상적으로 소켓 생성하고 서버로
접속 후 데이터 주고 받는 부분까지 모두 확인 하였습니다.

질문:
상기 루프대로 정상적으로 구동이 된것을 확인하고 렌선을 강제로 뽑았을때 “getSn_SR(sn)” 의 리턴상태가 SOCK_ESTABLISHED 입니다. 렌선이 뽑혀있는데도요 (loopback_tcpc 함수를 주기적으로 메인 루틴에서 체크 중입니다.) 렌선이 뽑히면 상태레지스터의 값이 변하는게 아닌가요? 아니면 설정을 놓치는 부분이 있는가요?

안녕하세요
랜선이 뽑힐경우 W5500은 접속 종료에 대한 패킷을 수신하지 못하기때문에 네트워크상의 변화를 감지 하지 못해 상태가 변하지 않습니다.
W5500의 경우 Keep Alive라는 기능이 있습니다.
이 기능을 설정할 경우 주기적으로 패킷을 전송하여 상대방으로부터 응답을 받지 못하는 경우 Timeout이 발생하여 연결이 끊어지게 됩니다.

ioLibrary를 사용하시는 경우 socket을 open하기전에 아래 함수를 통해 설정하시기 바랍니다.
image

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