daytimetcpsrv2.c 710 B

1234567891011121314151617181920212223242526272829303132
  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, addrlen;
  8. char buff[MAXLINE];
  9. time_t ticks;
  10. struct sockaddr_storage cliaddr;
  11. if (argc == 2)
  12. listenfd = Tcp_listen(NULL, argv[1], &addrlen);
  13. else if (argc == 3)
  14. listenfd = Tcp_listen(argv[1], argv[2], &addrlen);
  15. else
  16. err_quit("usage: daytimetcpsrv2 [ <host> ] <service or port>");
  17. for ( ; ; ) {
  18. len = sizeof(cliaddr);
  19. connfd = Accept(listenfd, (SA *)&cliaddr, &len);
  20. printf("connection from %s\n", Sock_ntop((SA *)&cliaddr, len));
  21. ticks = time(NULL);
  22. snprintf(buff, sizeof(buff), "%.24s\r\n", ctime(&ticks));
  23. Write(connfd, buff, strlen(buff));
  24. Close(connfd);
  25. }
  26. }