View Full Version : [C] IP_HDRINCL undeclared ?!
Teo@Unix
24-03-2010, 15:39
Ciao,
ho un problemino, durante la compilazione mi viene segnalato che la costante IP_HDRINCL non è definita, mentre per quanto ne so dovrebbe bastarmi includere windows.h, oppure non è così?
Tale costante la uso nel modo seguente, ma non dovrebbe centrare nulla con l'errore che ho...
if(setsockopt(sock, 0, IP_HDRINCL, &option, sizeof(option)) < 0)
error(SETSOCKOPTFAIL,NULL);
grazie,;)
Non conosco quella costante, ma devi includere Winsock2.h.
Teo@Unix
24-03-2010, 18:38
:doh: in realtà ho sbagliato a scrivere, ho già incluso winsock2.h :D pardon...
è proprio questa la stranezza....
non che possiate risolvermi la cosa così senza vedere nemmeno il codice ma mi chiedevo se qualcuno l'ha già usata riscontrando problemi simili, se non è così il problema è solo mio.
wingman87
24-03-2010, 19:05
Non è una costante delle librerie per windows
EDIT: detto cazzata :D
||ElChE||88
24-03-2010, 19:48
#include "ws2tcpip.h";
Teo@Unix
24-03-2010, 20:24
Non è una costante delle librerie per windows
Come no? E' indicata anche su MSDN stessa.
#include "ws2tcpip.h";
grazie così ho risolto, strano perchè era indicato winsock2.h, poi vabè io in effetti non sono andato a verificare :)
wingman87
24-03-2010, 20:44
Come no? E' indicata anche su MSDN stessa.
Ho fatto una ricerca veloce con google e ho trovato un sacco di riferimenti a librerie unix così ho inferito erroneamente che non fosse una costante windows. Comunque avevo già editato sopra...
bobbytre
24-03-2010, 22:59
definite in Ws2tcpip.h
/* Option to use with [gs]etsockopt at the IPPROTO_IP level */
#define IP_OPTIONS 1 /* set/get IP options */
#define IP_HDRINCL 2 /* header is included with data */
#define IP_TOS 3 /* IP type of service and preced*/
#define IP_TTL 4 /* IP time to live */
#define IP_MULTICAST_IF 9 /* set/get IP multicast i/f */
#define IP_MULTICAST_TTL 10 /* set/get IP multicast ttl */
#define IP_MULTICAST_LOOP 11 /*set/get IP multicast loopback */
#define IP_ADD_MEMBERSHIP 12 /* add an IP group membership */
#define IP_DROP_MEMBERSHIP 13/* drop an IP group membership */
#define IP_DONTFRAGMENT 14 /* don't fragment IP datagrams */
Teo@Unix: sono curioso, spesso tiri fuori situazioni abbastanza "esotiche", cosa stai facendo ?
Teo@Unix
25-03-2010, 13:05
Teo@Unix: sono curioso, spesso tiri fuori situazioni abbastanza "esotiche", cosa stai facendo ?
grazie per l'interesse...
nulla in particolare a parte studiare, il fatto di scriversi certi programmi è un buon esercizio ....... --> non frequento l'università ... ma lavoro nel settore dell'IT in una media azienda, che sviluppa hardware e software. Ho quindi (con mia fortuna) una quantità di stimoli davvero "succosa" e un campo di prova vasto.
Abbinando questo alla programmazione e alla passione ottengo buoni risultati, ad esempio, sovente mi scrivo alcune utility per la gestione di situazioni particolari ....
inoltre in un futuro prossimo spero di poter lavorare anche io nello sviluppo oltre la gestione della rete, anche se non credo che dove lavoro sarà possibile, non tanto perchè non ho le capacità anzi... ma perchè chi si occupa attualmente dello sviluppo di applicazioni che non siano firmware è imparentato strettamente con i fondatori dell'azienda.... molto difficile scalzarlo :D :D .
Ma tra un anno e 1/2 finirà il mio contratto e vedremo che fare ..... :p, anzi voi che magari già lavorate come sviluppatori che mi consigliate?
Inoltre, tanto per farvi partecipi... (questa è una mia opinione) il fatto che costui si ostina ad utilizzare "visual basic" per realizzare applicazioni che devono lavorare a basso livello e dialogare con dispositivi che non hanno un s.o. ma un firmware, non è poi una genialata a mio parere se non per "risparmio di tempo".....
Il risultato è che i software che rilasciamo sono resi instabili da aggiornamenti di windows e vincolati a microsoft, mentre quel che io proporrei è il cross-platform che negli ultimi tempi mi sembra la direzione giusta.
Così mi date anche una vs. opinione su questo...
a parte questo sfogo :) , scusate se ho colto l'occasione per divagare ... :D, l'uso della costante in questione mi serve per impostare tale opzione su un socket raw per creare dei pacchetti arbitrari, oppure per usare protocolli non standard.
Questa applicazione non c'entra con il prodotto che facciamo, ma per esempio i nostri dispositivi usano un protocollo proprietario incapsulabile sotto lo strato di trasporto. (in questo caso neanche servono i socket raw)
Ultimamente i thin client sono la moda principale per apparecchi che si interfacciano all'hardware (poi dipende a quale hardware). Molto spesso si usano SoC basati su ARM (al pari dei moderni navigatori o palmari), per interfacciarsi con l'hardware e poi si scaricano tutti i dati sul server.
Ovviamente il dispositivo può essere basato sia su Windows Mobile che su Linux (vantaggio ancora per Windows Mobile, anche se Linux è in recupero grazie alle Qt che partono direttamente da linea di comando).
Teo@Unix
25-03-2010, 20:02
Molto spesso si usano SoC basati su ARM (al pari dei moderni navigatori o palmari), per interfacciarsi con l'hardware e poi si scaricano tutti i dati sul server.
Ovviamente il dispositivo può essere basato sia su Windows Mobile che su Linux (vantaggio ancora per Windows Mobile, anche se Linux è in recupero grazie alle Qt che partono direttamente da linea di comando).
"ARM" non ho mai sentito nulla al riguardo che cosè?
Un tizio da me sta sviluppando un'applicazione più driver per una scheda con windows CE... nulla che riguarda palmari o dispositivi mobili però... dopo aver rinunciato a farlo con linux mi ha detto, per problemi di velocità, poi nel dettaglio non so.
http://it.wikipedia.org/wiki/Architettura_ARM
Mah, mi sembra strano che abbia problemi di velocità, non è che passando a Windows il tutto diventi più veloce :D
Teo@Unix
25-03-2010, 21:55
non è che passando a Windows il tutto diventi più veloce :D
sono d'accordo, ma non so altro del perché poi ha abbandonato.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.