수고 많습니다.
w5200 을 Client Mode로 최신 Driver Program으로 Porting 하여 Testing 하고 있습니다.
SOCK_ESTABLISHED 상태에서 Client에서 먼저 disconnect 를 할 경우
disconnect Module
while(getSn_SR(sn) != SOCK_CLOSED)
{
if(getSn_IR(sn) & Sn_IR_TIMEOUT)
{
close(sn);
return SOCKERR_TIMEOUT;
}
}
여기서 빠져 나오지 않는데 어떻게 해야 하나요?
close(sn) 는 정장적으로 되나 disconnect(sn)을 해야 서버 단의 연결을 끊을 수 있기 때문에
방법을 구합니다
socket Version
/! \version 1.0.3
//! \date 2013/10/21
w5200 Version
//! \version 1.0.0
//! \date 2013/10/21
int8_t disconnect(uint8_t sn)
{
CHECK_SOCKNUM();
CHECK_SOCKMODE(Sn_MR_TCP);
setSn_CR(sn,Sn_CR_DISCON);
/* wait to process the command… */
while(getSn_CR(sn));
sock_is_sending &= ~(1<<sn);
if(sock_io_mode & (1<<sn)) return SOCK_BUSY;
while(getSn_SR(sn) != SOCK_CLOSED)
{
if(getSn_IR(sn) & Sn_IR_TIMEOUT)
{
close(sn);
return SOCKERR_TIMEOUT;
}
}
return SOCK_OK;
}