WIZnet Developer Forum

Size 가 480 byte되는 긴 File 서버와 주고 받을 경우 Error 발생

w5500 Client Mode로 서버와 통신 하는 제품 개발 중에 있습니다.
CPU stm32F103이고 freeRTOS 상에서 Task를 만들어 100ms 단위로 480byte를 Server로 보내면 Server에서는 480 byte 받은 Data를 그대로 Client로 돌려 주도록 하여 Client에서 보낸 Packet과 비교하는 방법으로 Packet이 잘 전달되는지 시험중에 있습니다.

Send 관련 Program:
while(size != sentsize)
{
ret = send(sn, buf+sentsize, size-sentsize);
if(ret < 0)
{
close(sn);
return ret;
}
sentsize += ret; // Don’t care SOCKERR_BUSY, because it is zero.
}

Send 함수를 사용하여 시험한 결과 128bye 정도에서는 장시간 시험해도 문제가 없습니다.
Packet Size 480 byte정도 늘려서 시험하면 Packet를 전달하지 못하고 Close 되는 현상이 있습니다.
send 가 다 되었는지를 확인하는 방법이 send 함수의 ret함수를 보는 방법과 모두 전달되었는지를 확실하게 알려면
어는 Reg를 보아야 하는지요? Sn_IR Reg Bit4가 SEND_OK 라고 되어 있는데 이 Bit를 읽어 보면 항상 1로 Set 되어 있는데
이 Bit를 보면 되는건가요? 아니면 송신 완료 상태를 확실하게 알려면 어떻게 해야 되나요?

유선상으로 답변드렸습니다.

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