Sådan som den er deklareret troede jeg jo at man skulle skrive "127.0.0.1" direkte som første paramter, men det er åbenbart ikke tilfældet! Nogen der kan fortælle mig hvorfor den ikke bare kræver en in_addr* som første param. ?
Ja, eneste forskel er at du bruger en unsigned int direkte, hvorimod jeg bruger den unsigned int der ligger i in_addr-structen(in_addr::s_addr). Jeg forstår stadig ikke hvorfor gethostbyaddr kræver en char*.
Ja, jeg er med på at den bliver type-castet. Grunden til at det både virker med struct in_addr og med unsigned int direkte, er måske at IN_ADDR er deklararet sådan her: --- struct in_addr { union { struct { u_char s_b1,s_b2,s_b3,s_b4; } S_un_b; struct { u_short s_w1,s_w2; } S_un_w; u_long S_addr; } S_un; --- Altså som en union. Så hvis jeg smider noget data i s_addr, så indeholder structen ikke andet.. hmm..
Om man bruger unsigned int direkte eller in_addr går vel ud på et.
Det undrer mig blot lidt at man så ikke har specificeret at man skal bruge en in_addr, og ikke en char *.
Det kan også undre at man får "network byte order" ved at caste en int til en char *, eller bruge in_addr, jeg troede at "network byte order" var big-endian?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.