Socket gurus:
I've got a program which executes correctly on Sun & HP platforms but fails
on my Alpha (3.2d) with "Address family not supported by protocol family"
error. Since there is an appropriate entry in /etc/services, I don't know
what the complaint is. I'm enclosing a short snippet which I hope is
sufficient to enable those more knowledgeable than I to diagnose the problem!
Thanks-
Richard (grscott_at_is.ge.com)
----------------------------------------------------------------------------
if ((p_data = getprotobyname("tcp")) == (struct protoent *)NULL)
barf("Got serious problems here!");
else printf("Found TCP with name \"%s\" and value %d\n",
p_data->p_name, p_data->p_proto);
if ((sockfd = socket(AF_INET, SOCK_STREAM, p_data->p_proto)) < 0)
barf("Socket Create Failed!");
if (ugw = getservbyname("ugw_strm_int", "tcp"))
printf("Service is \"%s\" on port %d using protocol \"%s\"\n",
ugw->s_name, ntohs(ugw->s_port), ugw->s_proto);
else barf("UGW not available");
if (gw_host = gethostbyname(theirname))
{
memcpy( (char *)&(serveraddr.sin_addr.s_addr), gw_host->h_addr,
gw_host->h_length);
serveraddr.sin_port = ugw->s_port;
if (connect(sockfd, &serveraddr, sizeof(serveraddr)) < 0)
barf("Socket Connect Failed!");
// and here is indeed where it fails with the error
... do_dah, do_dah...
Received on Mon Jun 03 1996 - 19:14:54 NZST