daytimetcpcli.c 746 B

123456789101112131415161718192021222324252627282930313233
  1. #include "unp.h"
  2. int
  3. main(int argc, char **argv)
  4. {
  5. int sockfd, n;
  6. struct sockaddr_in servaddr;
  7. char recvline[MAXLINE + 1];
  8. if ( (sockfd = socket(PF_INET, SOCK_STREAM, 0)) < 0)
  9. err_sys("socket error");
  10. bzero(&servaddr, sizeof(servaddr));
  11. servaddr.sin_family = AF_INET;
  12. servaddr.sin_addr.s_addr = inet_addr(argv[1]);
  13. servaddr.sin_port = htons(13); /* daytime server */
  14. if (connect_nonb(sockfd, (SA *) &servaddr, sizeof(servaddr), 0) < 0)
  15. err_sys("connect error");
  16. for ( ; ; ) {
  17. if ( (n = read(sockfd, recvline, MAXLINE)) <= 0) {
  18. if (n == 0)
  19. break; /* server closed connection */
  20. else
  21. err_sys("read error");
  22. }
  23. recvline[n] = 0; /* null terminate */
  24. Fputs(recvline, stdout);
  25. }
  26. exit(0);
  27. }