Bonjour
je me lance dans les sockets depuis quelques jours et je bloque sur la fonction getservbyname.
j'ecrit ce code
Code:
if ((sptr=getservbyname("ssh","tcp"))==NULL){
printf("Impossible d'avoir les infos sur le service \n");
exit (1); }
printf("Le nom du service de la machine est : %s \n",sptr->s_name);
printf("Le port du service de la machine est : %i \n",sptr->s_port);
et à léxécition, ca me donne
Citation:
Le nom du service de la machine est : ssh
Le port du service de la machine est : 5632
5632 au lieu de 22 c'est bizarre.
j'en ai essayer d'autre comme https sur 443 et ca me donne
Citation:
Le nom du service de la machine est : https
Le port du service de la machine est : 47873
etc...
La valeurs ne sont même pas dans etc/service.
J'ai donc essayé getservbyport et la aussi c'est etrange
Code:
if ((sptr=getservbyport(512,"tcp"))==NULL){
printf("Impossible d'avoir les infos sur le service \n");
exit (1); }
pour le port 512 j'ai se serice "compressnet" qui est normalement sur le port 2
et pour le port 2 j'ai le service exec qui lui est normalement sur 512.
La je patauge, quelqu'un a une piste pour moi ??
merci
# htons()
Posté par Colin Leroy (site web personnel) . Évalué à 3.
printf("Le port du service de la machine est : %i \n",ntohs(sptr->s_port));
fonctionnera mieux.
htons() Host to Network
ntohs() Network to Host
(qui en fait fonctionnent pareil).
[^] # Re: htons()
Posté par david . Évalué à 1.
ca fait deux soirs que je tatone et je ne pensais pas du tout à un truc comme ca.
Je vais chercher un peut d'info sur le sujet, j'avais entendu parler de little et big indian mais sans vraiment savoir comment ca fonctionne.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.