The UNIX Operating System

TOP

UP


Ray Seyfarth

ORCA


Computer Science

COST

USM




A TIME Server


    #define UNIXEPOCH 2208988800
    
    /*------------------------------------------------------------------------
     * main - Iterative UDP server for TIME service
     *------------------------------------------------------------------------
     */
    int main(int argc, char *argv[])
    {
        struct sockaddr_in fsin;
        char *service = "time";
        char buf[1];
        int sock;
        time_t now;
        int alen;
    
        sock = passiveUDP(service);
    
        while (1) {
            alen = sizeof(fsin);
            if (recvfrom(sock, buf, sizeof(buf), 0,
                (struct sockaddr *)&fsin, &alen) < 0)
                errexit("recvfrom: %s\n", strerror(errno));
            time(&now);
            now = htonl((u_long)(now + UNIXEPOCH));
            sendto(sock, (char *)&now, sizeof(now), 0,
                (struct sockaddr *)&fsin, sizeof(fsin));
        }
    }
    


University of Southern Mississippi
Ray.Seyfarth@usm.edu
Updated 20:05 Jun 5, 2000