121 votes

Comprendre INADDR_ANY pour la programmation de socket

J'essaie de programmer des sockets et donc, du côté serveur, j'utilise htonl(INADDR_ANY) . Pour autant que j'ai compris, il me semble que cette fonction génère une IP aléatoire (ai-je raison ?). En fait, je veux lier mon socket avec mon adresse IP. localhost . Mais si je lance cette

printf("%d",htonl(INADDR_ANY));

J'obtiens 0 comme valeur de retour. Quelqu'un pourrait-il m'expliquer ?

3voto

vivek Points 81

INADDR_ANY est une constante, qui contient 0 dans la valeur. ceci sera utilisé seulement quand vous voulez vous connecter à partir de tous les ports actifs vous ne vous souciez pas de l'ip-add. Ainsi, si vous voulez vous connecter à une adresse IP particulière, vous devez la mentionner comme suit my_sockaddress.sin_addr.s_addr = inet_addr("192.168.78.2")

-1voto

Anish T Points 23
#include <arpa/inet.h>                                                                     
.                                                                                   
.                                                                                        
tcpsock.sin_addr.s_addr = inet_addr("192.168.1.2")

a fonctionné pour moi

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X