Wiz200web에 NTP기능을 추가하려고 합니다

Wiz200에 NTP기능을 추가하려고 합니다…

먼저 NTP부분은…

NTP(5, Sn_MR_UDP, 123, 0);

unsigned int NTP(SOCKET s, uint8 protocol, uint16 port, uint16 flag)
{
uint8 ntpbuffer[48];
uint32 len;
unsigned char servip[4] = NTP_IP;
unsigned int *secsptr = NULL;
int received = 0;

close(s);
socket(s, Sn_MR_UDP, port, flag);

memset(ntpbuffer, 0, 48);
        
ntpbuffer[0] = 0x1B;

sendto(s, ntpbuffer, 48, servip, port);

while (!received)
{
    if ((len = getSn_RX_RSR(s)) > 0)
    {
        uint8 destip[4];
        uint16 destport;

        len = recvfrom(s, ntpbuffer, len, destip, &destport);
        received = 1;
    }
}

close(s);

return 1;

}

위와 같이 작성하여 먼저 패킷전송부터 하려고합니다.
NTP_IP에 255.255.255.255로 저장을 하고 실행하면 그림처럼 나오는데…
203.248.240.140(time.bora.net)으로 하면 아무것도 안나옵니다…
sendto 함수 리턴값은 48이 나옵니다… 그런데 와이어샤크에는 아무것도 안잡히네요…
답변부탁드립니다…


언급하신 상황에서 Wireshark에 패킷이 잡히지 않는 것은 정상으로 보입니다.
모듈에서 255.255.255.255로 패킷을 broadcast 하는 경우, PC도 동일 서브넷에 연결되어 있기에 PC의 wireshark 프로그램에서 해당 패킷을 잡을 수 있습니다.
하지만 NTP server로 unicast 하는 경우, [모듈 → NTP server]로 바로 패킷이 보내지므로 PC에서 해당 패킷을 잡을 수 없는 상황입니다.
sendto 함수가 timeout 발생 없이 정상적으로 보낸 데이터의 length를 리턴하였기에 데이터 전송은 잘 이루어졌으리라 생각됩니다.

모듈에서 unicast로 패킷을 전송할 때 PC 측에서 패킷을 확인하시려면,
더미허브 등의 포트 미러링이 가능한 장비를 이용하셔서 모듈에 연결된 포트의 패킷들을 PC 쪽에서도 확인할 수 있도록 해 주시면 됩니다.