daytimetcpsrv1.c 607 B

123456789101112131415161718192021222324252627282930
  1. #include "unp.h"
  2. #include <time.h>
  3. int
  4. main(int argc, char **argv)
  5. {
  6. int listenfd, connfd;
  7. socklen_t len;
  8. char buff[MAXLINE];
  9. time_t ticks;
  10. struct sockaddr_storage cliaddr;
  11. if (argc != 2)
  12. err_quit("usage: daytimetcpsrv1 <service or port#>");
  13. listenfd = Tcp_listen(NULL, argv[1], NULL);
  14. for ( ; ; ) {
  15. len = sizeof(cliaddr);
  16. connfd = Accept(listenfd, (SA *)&cliaddr, &len);
  17. printf("connection from %s\n", Sock_ntop((SA *)&cliaddr, len));
  18. ticks = time(NULL);
  19. snprintf(buff, sizeof(buff), "%.24s\r\n", ctime(&ticks));
  20. Write(connfd, buff, strlen(buff));
  21. Close(connfd);
  22. }
  23. }