
2.3 Guidelines to Address-Family Independent Socket Programming 17
2.3
if (hp->h_length l= sizeof(sin6.sin6 addr)) {
fprintf(stderr, "invalid address size\n");
exit(l);
/*NOTREACHED*/
}
memset(&sin6, 0, sizeof(sin6));
sin6.sin6_family = AF_INET6;
salen
= sin6.sin6 len = sizeof(struct sockaddr in6) ;
memcpy(&sin6.sin6_addr,
hp->h_addr, sizeof(sin6.sin6_addr)) ;
sin6.sin6_port = htons(80) ;
/*
connect to the peer
*/
if (connect(s, (struct sockaddr *)&sin6, salen) 0) {
perror("connect") ;
exit(l);
}
Guidelines to Address-Family Independent
Socket Programming
So, how can we make our program address-family independent? ...