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 }