[S] Socket problem/query

From: <grscott_at_grscott.is.ge.com>
Date: Mon, 3 Jun 96 14:30:17 CST

My sincere thanks is extended to Dale Cook of Scientech, Inc, who quickly and
accurately observed that I had neglected to include one important statement:
"serveraddr.sin_family = AF_INET" along with setting the sin_port
appropriately. The fact that it worked on any platform was, I'd imagine, merely
coincidental!

My original whimper was:

>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!
>----------------------------------------------------------------------------
> 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 - 22:01:28 NZST

This archive was generated by hypermail 2.4.0 : Wed Nov 08 2023 - 11:53:46 NZDT