[C]freeBSD,socket:INADDR_ANY

dzcosimo
salve
sto imparando a programmare applicazioni distribuite utilizzando i socket, su sistema operativo freeBSD
come primo programmino sto scrivendo un server che riceve un vettore di 10 interi e lo restituisce con valori raddoppiati
sto incontrando vari problemi però, che credo dipendenti dalle librerie(o meglio dalla mancanza delle stesse)
inizio quindi col primo

utilizzo la macro INADDR_ANY per dire al socket che mi va bene qualunque porta
gcc mi dice che INADDR_ANY non è definito

qualcuno ha qualche idea a riguardo?

grazie in anticipo per le eventuali risposte

Risposte
hamming_burst
ciao,
prima cosa dimmi questo:

- che #include hai fatto?
- server TCP o UDP?

riscontrai anchio errori di librerie tempo addietro, ma era perchè hanno nomi differenti secondo la versione.

le volte che ho scritto socket in C, INADDR_ANY lo usavo per far recuperare al sistema direttamente l'IP...

cmq riporta qua il pezzo di codice della struttura sockaddr_in e vediamo :-)

Rggb1
Che sapessi io, INADDR_ANY si usa per "any internet address" e normalmente è 0 (any=0.0.0.0 in dot notation). Cosa intendi per "qualunque porta"?

dzcosimo
"ham_burst":
ciao,
prima cosa dimmi questo:

- che #include hai fatto?
- server TCP o UDP?

riscontrai anchio errori di librerie tempo addietro, ma era perchè hanno nomi differenti secondo la versione.

le volte che ho scritto socket in C, INADDR_ANY lo usavo per far recuperare al sistema direttamente l'IP...

cmq riporta qua il pezzo di codice della struttura sockaddr_in e vediamo :-)


-stasera quando arrivo a casa te li listo ma almeno questi:
#include
 #include
 #include
 #include

-TCP

dzcosimo
Che sapessi io, INADDR_ANY si usa per "any internet address" e normalmente è 0 (any=0.0.0.0 in dot notation). Cosa intendi per "qualunque porta"?


essendo, per quanto so, indirizzo=[IP , porta], ed essendo ip ovviamente fisso sulla stessa macchina credo che INADDR_ANY specifichi che il socket può usare qualunque indirizzo e ciò equivale a qualunque porta

Rggb1
Facciamo un po' di chiarezza (anche se so che lo sai). Per "indirizzo" o "IP" si intende "indirizzo IP", quello che tu indichi è un cd. endpoint, se usi TCP è una sorgente o una destinazione, e la porta va specificata.

'man 7 ip' is your friend ;)

hamming_burst
"dzcosimo":


-stasera quando arrivo a casa te li listo ma almeno questi:
#include
 #include
 #include
 #include

-TCP


prova ad aggiungere:

#include

se guardi com'è strutturata la struttura "sockaddr_in" vedrai che ha due posizioni da specificare "sin_port" e "sin_addr". Te dove hai messo la funzione che accetta "INADDR_ANY"?

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.