daytimetcpcliv6.c 815 B

1234567891011121314151617181920212223242526272829303132333435
  1. #include "unp.h"
  2. int
  3. main(int argc, char **argv)
  4. {
  5. int sockfd, n;
  6. struct sockaddr_in6 servaddr;
  7. char recvline[MAXLINE + 1];
  8. if (argc != 2)
  9. err_quit("usage: a.out <IPaddress>");
  10. if ( (sockfd = socket(AF_INET6, SOCK_STREAM, 0)) < 0)
  11. err_sys("socket error");
  12. bzero(&servaddr, sizeof(servaddr));
  13. servaddr.sin6_family = AF_INET6;
  14. servaddr.sin6_port = htons(13); /* daytime server */
  15. if (inet_pton(AF_INET6, argv[1], &servaddr.sin6_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. recvline[n] = 0; /* null terminate */
  21. if (fputs(recvline, stdout) == EOF)
  22. err_sys("fputs error");
  23. }
  24. if (n < 0)
  25. err_sys("read error");
  26. exit(0);
  27. }