IPV4
1 #include<unp.h>
2 int
3 main(int argc,char **argv)
4 {
5 int sockfd,n;
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)) < O)
11 err_sys("socket error");
12 bzero(&servaddr,sizeof(servaddr));
13 servaddr.sin_family=AF_INET;
14 servaddr.sin_port=htons(13); / * 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 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 }
IPV6 :
1 #include<unp.h>
2 int
3 main(int argc,char **argv)
4 {
5 int sockfd,n;
6 char recvline[MAXLINE+1];
7 struct sockaddr_in6 servaddr;
8 if(argc !=2)
9 err_quit("usage: a.out <IPaddress> ");
10 if((sockfd=socket(AF_INET6,SOCK_STREAM,0)) < O)
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 }