imam pitanje... kod strukture hostent mi javlja da on nema u sebi sadrzanu varijablu h_lenght, te kad idem ispisivati sve iz liste h_addr_list dobivam neke cudne rezultate (npr. jedan od rezultata za host google mi je:
J}'�www.J}'cwww.J}'gogle.com ).
( podpitanje: da li su u toj listi charova u biti nule i jedinice? ( kaze da je to binarni zapis, a ja dobivam ovakve ispise... neznam kaj s tim??? )
edit:
jos jedno pitanje:
imamo kod sa vjezbi:
...
struct hostent *hostInfo;
struct in_addr binarniIP;
inet_aton( "161.53.8.14", &binarniIP ); // error-check...
hostInfo = gethostbyaddr( (const char *)&binarniIP, sizeof( binarniIP ), AF_INET );
if( hostInfo == NULL ) herror( "gethostbyaddr" );
...
zanima me ovo castanje
(const char *)&binarniIP kolko znam to bi trebalo znacit da smo
castali [b]adresu[/b] binarnogIP -a u const char*???... jel bi mi mogao to netko pojasnit
inace evo koja sam naso 2 prototipa na netu za tu funkciju...
struct hostent *gethostbyaddr(char *host_address, int address_length, int address_type)
struct hostent *gethostbyaddr(const void *addr, socklen_t len, int type);
e sad na stranicama od kud sam izbavio ove prototipove kod svakog prototipa mi pise koji su ulazni parametri te mi je naglaseno da je ovaj prvi pointer, u biti pointer na strukturu tipa in_addr , ne kuzim zakaj se onda jednostavno ne napise u prototipu ... in_addr* struktura_addr, ... a ide se sa void pointerima i char pointerima ( u neki slucajevima constantnim, u nekim ne ) ???
edit2:
for( int i = 0; neki_host->h_addr_list[i] != NULL; ++i )
{
struct in_addr binarniIP = *( (struct in_addr *) neki_host->h_addr_list[i] );
char *dekadskiIP = inet_ntoa( binarniIP );
printf( "IP-adresa: %s\n", dekadskiIP );
}
evo to sam nasao upravo na rjesenjima od prosle godine ( u biti kak iz one liste gdje sam ja dobivao cudne rezultate dobiti IP adrese )... jel mi moze neko pojasnit ovu liniju:
struct in_addr binarniIP = *( (struct in_addr *) neki_host->h_addr_list[i] );
( ostala pitanja odozgo jos stoje... )
imam pitanje... kod strukture hostent mi javlja da on nema u sebi sadrzanu varijablu h_lenght, te kad idem ispisivati sve iz liste h_addr_list dobivam neke cudne rezultate (npr. jedan od rezultata za host google mi je:
J}'�www.J}'cwww.J}'gogle.com ).
( podpitanje: da li su u toj listi charova u biti nule i jedinice? ( kaze da je to binarni zapis, a ja dobivam ovakve ispise... neznam kaj s tim??? )
edit:
jos jedno pitanje:
imamo kod sa vjezbi:
...
struct hostent *hostInfo;
struct in_addr binarniIP;
inet_aton( "161.53.8.14", &binarniIP ); // error-check...
hostInfo = gethostbyaddr( (const char *)&binarniIP, sizeof( binarniIP ), AF_INET );
if( hostInfo == NULL ) herror( "gethostbyaddr" );
...
zanima me ovo castanje
(const char *)&binarniIP kolko znam to bi trebalo znacit da smo
castali adresu binarnogIP -a u const char*???... jel bi mi mogao to netko pojasnit
inace evo koja sam naso 2 prototipa na netu za tu funkciju...
struct hostent *gethostbyaddr(char *host_address, int address_length, int address_type)
struct hostent *gethostbyaddr(const void *addr, socklen_t len, int type);
e sad na stranicama od kud sam izbavio ove prototipove kod svakog prototipa mi pise koji su ulazni parametri te mi je naglaseno da je ovaj prvi pointer, u biti pointer na strukturu tipa in_addr , ne kuzim zakaj se onda jednostavno ne napise u prototipu ... in_addr* struktura_addr, ... a ide se sa void pointerima i char pointerima ( u neki slucajevima constantnim, u nekim ne ) ???
edit2:
for( int i = 0; neki_host→h_addr_list[i] != NULL; ++i )
{
struct in_addr binarniIP = *( (struct in_addr *) neki_host→h_addr_list[i] );
char *dekadskiIP = inet_ntoa( binarniIP );
printf( "IP-adresa: %s\n", dekadskiIP );
}
evo to sam nasao upravo na rjesenjima od prosle godine ( u biti kak iz one liste gdje sam ja dobivao cudne rezultate dobiti IP adrese )... jel mi moze neko pojasnit ovu liniju:
struct in_addr binarniIP = *( (struct in_addr *) neki_host→h_addr_list[i] );
( ostala pitanja odozgo jos stoje... )
|