tpi_daytime.c 967 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #include "tpi_daytime.h"
  2. int
  3. main(int argc, char **argv)
  4. {
  5. int fd, n;
  6. char recvline[MAXLINE + 1];
  7. struct sockaddr_in myaddr, servaddr;
  8. if (argc != 2)
  9. err_quit("usage: tpi_daytime <IPaddress>");
  10. fd = Open(XTI_TCP, O_RDWR, 0);
  11. /*4bind any local address */
  12. bzero(&myaddr, sizeof(myaddr));
  13. myaddr.sin_family = AF_INET;
  14. myaddr.sin_addr.s_addr = htonl(INADDR_ANY);
  15. myaddr.sin_port = htons(0);
  16. tpi_bind(fd, &myaddr, sizeof(struct sockaddr_in));
  17. /*4fill in server's address */
  18. bzero(&servaddr, sizeof(servaddr));
  19. servaddr.sin_family = AF_INET;
  20. servaddr.sin_port = htons(13); /* daytime server */
  21. Inet_pton(AF_INET, argv[1], &servaddr.sin_addr);
  22. tpi_connect(fd, &servaddr, sizeof(struct sockaddr_in));
  23. for ( ; ; ) {
  24. if ( (n = tpi_read(fd, recvline, MAXLINE)) <= 0) {
  25. if (n == 0)
  26. break;
  27. else
  28. err_sys("tpi_read error");
  29. }
  30. recvline[n] = 0; /* null terminate */
  31. fputs(recvline, stdout);
  32. }
  33. tpi_close(fd);
  34. exit(0);
  35. }