- sLiceR -
08-03-2006, 15:47
Salve ragazzi, scrivo qui sul forum di programmazione perchè ho un piccolo tecnico nell'utilizzo di una funzione (avendo iniziato ieri il corso di informatica 2 proprio non saprei come risolverlo da solo ^^).
il codice incriminato è questo
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#define PORT 4000
int main (int argc, char* argv[])
{
int sd, err;
struct sockaddr_in server_address, my_address;
int my_address_lenght=sizeof(my_address);
/* INIZIALLIZZAZIONE INDIRIZZO */
server_address.sin_family=AF_INET;
server_address.sin_port=htons((u_short)PORT);
server_address.sin_addr.s_addr=(long)inet_addr(argv[1]);
/* CREAZIONE SOCKET */
sd=socket(AF_INET,SOCK_STREAM,0);
if(sd<0){
perror("socket");
return(1);
}
/* CONNESSIONE */
err=connect(sd, (struct sockaddr*)&server_address, sizeof(server_address));
if(err==0){
printf("\nHo eseguito la connessione.\n");
getsocketname(sd,(struct sockaddr*)&my_address, (socklen_t*)&my_address_lenght);
printf("la mia porta è: %d\n\n", ntohs(my_address.sin_port));
}
else{
printf("\nImpossibile effettuare la connessione:\n");
perror("connect");
return(1);
}
close(sd);
return(0);
}
compilando con gcc ottengo l'errore: undefined reference to 'getsocketname'..non capisco perchè dovrebbe essere definita negli header che ho incluso... o no? :stordita:
vi ringrazio per la lettura e per una eventuale risposta :D
sLiceR
il codice incriminato è questo
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#define PORT 4000
int main (int argc, char* argv[])
{
int sd, err;
struct sockaddr_in server_address, my_address;
int my_address_lenght=sizeof(my_address);
/* INIZIALLIZZAZIONE INDIRIZZO */
server_address.sin_family=AF_INET;
server_address.sin_port=htons((u_short)PORT);
server_address.sin_addr.s_addr=(long)inet_addr(argv[1]);
/* CREAZIONE SOCKET */
sd=socket(AF_INET,SOCK_STREAM,0);
if(sd<0){
perror("socket");
return(1);
}
/* CONNESSIONE */
err=connect(sd, (struct sockaddr*)&server_address, sizeof(server_address));
if(err==0){
printf("\nHo eseguito la connessione.\n");
getsocketname(sd,(struct sockaddr*)&my_address, (socklen_t*)&my_address_lenght);
printf("la mia porta è: %d\n\n", ntohs(my_address.sin_port));
}
else{
printf("\nImpossibile effettuare la connessione:\n");
perror("connect");
return(1);
}
close(sd);
return(0);
}
compilando con gcc ottengo l'errore: undefined reference to 'getsocketname'..non capisco perchè dovrebbe essere definita negli header che ho incluso... o no? :stordita:
vi ringrazio per la lettura e per una eventuale risposta :D
sLiceR