Sponsored Content
Operating Systems OS X (Apple) Address family not supported by protocol family Post 302189431 by DNAx86 on Friday 25th of April 2008 06:03:04 PM
Old 04-25-2008
Address family not supported by protocol family

Hi,

I compiled with no error a C program, than I tryed to execute it and than I get this error:

connessione al server fallita: Address family not supported by protocol family


What does it mean?

Why I get this error only on Mac os x while on Ubuntu the program works?

The code is:
/*
* EsameClient.c
*
*/

#include <stdlib.h>
#include <ctype.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>

#define NR 3
#define MAXLENGTH 80
#define SERVER_PORT 1313

int main (unsigned argc, char **argv)
{
int sockfd;
struct sockaddr_in server={AF_INET,htons(SERVER_PORT),INADDR_ANY};
int i=0,len;
char buf[MAXLENGTH],c;
int buffer[NR], stato;

/* Controllo Parametri Passati da Terminale */
if(argc != 4) // argv[1] -> argv[3] sono le risorse
{
perror("Chiamata corretta del programma:\nnome-programma <risorsa1> <risorsa2> <risorsa3> \n<risorsai> deve essere un intero positivo");
exit(1);
}

/* impostazione del transport end point */
if((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
{
perror("chiamata alla system call socket fallita");
exit(1);
}
/* connessione al server */
if(connect(sockfd,(struct sockaddr *)&server,sizeof server)==-1)
{
perror("connessione al server fallita");
exit(2);
}


/* ricezione e stampa a video del messaggio di benvenuto del server */
if(recv(sockfd,buf,27,0)>0)
{
buf[27]='\0';
printf("%s",buf);
}
else
{
perror("Connessione al server interrotta");
exit(3);
}

/* acquisizione della stringa da standard input */
/* while((c=getchar())!='\n' && i<MAXLENGTH)
buf[i++]=c;
buf[i]='\0';
len=strlen(buf); */

// Imposta buffer e len
for(i=0; i<NR;i++)
buffer[i]=argv[i+1];
len=sizeof(buffer); // size?? o # = 3/////////////////////////////////////////////////////


/* invio e ricezione della stringa */
if(send(sockfd,buffer,len,0)==-1) // Se send ritorna -1 = errore
{
perror("Errore nell'invio della richiesta risorse al server");
exit(4);
}
if(recv(sockfd,&stato,len,0)>0)
{
printf("%d\n",stato);
}
else
{
perror("Connessione al server interrotta");
exit(3);
}

/* chiusura della connessione */
close(sockfd);
}
 

7 More Discussions You Might Find Interesting

1. Programming

help me understand exec() family of calls...

how does exec() do it? on successful call of exec() family of functions, they never return... how to i emulate that. assume the standard example, execl("/bin/ls","ls",NULL); now this would never return. i m trying to emulate exec()'s never to return feature... #include<unistd.h>... (4 Replies)
Discussion started by: c_d
4 Replies

2. Solaris

Out of family NDU causing servers to hang

Had to reboot over 30 servers out of 70 or so during out of family code load. Still searching but may all have VxVM 3.5 in common. Our last window had similar outcome but on HPUX. I think it has to do with time outs and volume manager is offlining the devices. This just started happening. Anyone... (0 Replies)
Discussion started by: GaryP
0 Replies

3. UNIX for Dummies Questions & Answers

Family tree illustrated

hello is there a family tree, or words that would illustrate the family tree of, Unix -> Linux As i would understand Unix, it is a OS. And Linux is a ?, is Linux a OS or a sub structure inside of the Unix OS ?. Have you ever seen one of those family tree`s where ma and pa are shown at... (3 Replies)
Discussion started by: cowLips
3 Replies

4. Programming

Working of exec family of functions

Hi, I am studying exec family of functions.Its man page says,it replaces the current process image with a new process image. If it replaces the binary,then after returning back,how does it get the previous parameters of the process which called exec?As replacing process image means replacing all... (1 Reply)
Discussion started by: Radha.Krishna
1 Replies

5. UNIX for Dummies Questions & Answers

Working of exec family of functions

Hi, I am studying exec family of functions.Its man page says,it replaces the current process image with a new process image. If it replaces the binary,then after returning back,how does it get the previous parameters of the process which called exec?As replacing process image means replacing... (5 Replies)
Discussion started by: Radha.Krishna
5 Replies

6. AIX

Determine power family of p system from the model #.

Folks, Again a very silly question :D Could someone tell me, how to determine the power family(540, 520, 575, 595 etc) just by looking into the model # info from prtconf/lsconf o/p of the lpar? I dont want run a search on any search engine to find out the power family or hit IBM website to... (3 Replies)
Discussion started by: thisissouvik
3 Replies

7. Programming

Simple shell running with exec family

# Erroneous question, so can be removed. (0 Replies)
Discussion started by: beginnerboy
0 Replies
inet(4f)																  inet(4f)

Name
       inet - Internet protocol family

Syntax
       #include <sys/types.h>
       #include <netinet/in.h>

Description
       The  Internet  protocol family is a collection of protocols that is layered on the Internet Protocol (IP) transport layer and that uses the
       Internet address format.  The Internet family provides protocol support for the SOCK_STREAM, SOCK_DGRAM, and SOCK_RAW  socket  types.   The
       SOCK_RAW interface provides access to the IP protocol.

Addressing
       Internet  addresses  are  4-byte  quantities,  stored in network standard format.  The include file defines this address as a discriminated
       union.

       Sockets bound to the Internet protocol family use the following addressing structure:
       struct sockaddr_in {
	    short     sin_family;
	    u_short   sin_port;
	    struct    in_addr sin_addr;
	    char sin_zero[8];
       };
       Sockets may be created with the address INADDR_ANY to effect ``wildcard'' matching on incoming messages.

Protocols
       The Internet protocol family comprises the IP transport protocol, Internet Control Message Protocol (ICMP), Transmission  Control  Protocol
       (TCP),  and  User Datagram Protocol (UDP).  TCP is used to support the SOCK_STREAM abstraction, while UDP is used to support the SOCK_DGRAM
       abstraction.  A raw interface to IP and ICMP is available by creating an Internet socket of type SOCK_RAW.

See Also
       tcp(4p), udp(4p), ip(4p)

																	  inet(4f)
All times are GMT -4. The time now is 10:31 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy