Exemple #1
0
int64 NtpGetTime(const std::string &strHostName) {
    int64 nTime;
    SOCKET sockfd;
    socklen_t servlen;
    struct sockaddr cliaddr;

    if(!InitWithHost(strHostName, sockfd, servlen, &cliaddr))
      return(-1);

    CNetAddr ip = ((sockaddr_in *) &cliaddr)->sin_addr;
    printf("NtpGetTime() : querying an NTP server %s\n", ip.ToStringIP().c_str());

    nTime = DoReq(sockfd, servlen, cliaddr);

    closesocket(sockfd);

    if((nTime > 0) && (nTime != 2085978496)) {
        printf("NtpGetTime() : time sample %" PRI64d " offset %+" PRI64d " received from %s\n",
          nTime, nTime - GetTime(), ip.ToStringIP().c_str());
    }

    return(nTime);
}