1 #include	"unp.h"
2 #include	<time.h>
3 
4 int
main(int argc,char ** argv)5 main(int argc, char **argv)
6 {
7 	int					listenfd, connfd;
8 	socklen_t			len;
9 	struct sockaddr_in	servaddr, cliaddr;
10 	char				buff[MAXLINE];
11 	time_t				ticks;
12 
13 	listenfd = Socket(AF_INET, SOCK_STREAM, 0);
14 
15 	bzero(&servaddr, sizeof(servaddr));
16 	servaddr.sin_family      = AF_INET;
17 	servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
18 	servaddr.sin_port        = htons(13);	/* daytime server */
19 
20 	Bind(listenfd, (SA *) &servaddr, sizeof(servaddr));
21 
22 	Listen(listenfd, LISTENQ);
23 
24 	for ( ; ; ) {
25 		len = sizeof(cliaddr);
26 		connfd = Accept(listenfd, (SA *) &cliaddr, &len);
27 		printf("connection from %s, port %d\n",
28 			   Inet_ntop(AF_INET, &cliaddr.sin_addr, buff, sizeof(buff)),
29 			   ntohs(cliaddr.sin_port));
30 
31         ticks = time(NULL);
32         snprintf(buff, sizeof(buff), "%.24s\r\n", ctime(&ticks));
33         Write(connfd, buff, strlen(buff));
34 
35 		Close(connfd);
36 	}
37 }
38