#include #include #include #include #include #include #include ssize_t FullRead(int fd, void *buf, size_t count); int main(int argc, char **argv) { int sockfd, n; char recvline[1025] ; struct sockaddr_in servaddr; if (argc != 2) { fprintf(stderr,"usage: %s \n",argv[0]); exit (1); } if ( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) { fprintf(stderr,"socket error\n"); exit (1); } servaddr.sin_family = AF_INET; servaddr.sin_port = htons(1024); if (inet_pton(AF_INET, argv[1], &servaddr.sin_addr) < 0) { fprintf(stderr,"inet_pton error for %s\n", argv[1]); exit (1); } if (connect(sockfd, (struct sockaddr *) &servaddr, sizeof(servaddr)) < 0) { fprintf(stderr,"connect error\n"); exit(1); } /*FULLREAD()*/ if (fputs(recvline, stdout) == EOF) { fprintf(stderr,"fputs error\n"); exit(1); } exit(0); } ssize_t FullRead(int fd, void *buf, size_t count) { size_t nleft; ssize_t nread; nleft = count; while (nleft > 0) { /* repeat until no left */ /*COMPLETE HERE*/ } buf = 0; return (nleft); }