daytimetcpcli2.c 872 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #include "unp.h"
  2. int
  3. main(int argc, char **argv)
  4. {
  5. int sockfd, n, counter = 0;
  6. char recvline[MAXLINE + 1];
  7. struct sockaddr_in servaddr;
  8. if (argc != 2)
  9. err_quit("usage: a.out <IPaddress>");
  10. if ( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
  11. err_sys("socket error");
  12. bzero(&servaddr, sizeof(servaddr));
  13. servaddr.sin_family = AF_INET;
  14. servaddr.sin_port = htons(9999); /* daytime server */
  15. if (inet_pton(AF_INET, argv[1], &servaddr.sin_addr) <= 0)
  16. err_quit("inet_pton error for %s", argv[1]);
  17. if (connect(sockfd, (SA *) &servaddr, sizeof(servaddr)) < 0)
  18. err_sys("connect error");
  19. while ( (n = read(sockfd, recvline, MAXLINE)) > 0) {
  20. counter++;
  21. recvline[n] = 0; /* null terminate */
  22. if (fputs(recvline, stdout) == EOF)
  23. err_sys("fputs error");
  24. }
  25. if (n < 0)
  26. err_sys("read error");
  27. printf("counter = %d\n", counter);
  28. exit(0);
  29. }