Comment donner à un client une adresse ip spécifique en C

Je suis en train de mettre en œuvre un simple client et le serveur en C et je ne peux pas trouver en ligne un exemple comment définir une adresse IP spécifique pour le client. C'est ce que j'ai obtenu jusqu'à présent:

sockfd = socket(PF_INET, SOCK_STREAM, 0);
if (sockfd == -1)
{
    <some code to handle error>
}
address.sin_family = AF_INET;
address.sin_addr.s_addr = inet_addr(<addressOfTheServer>);
address.sin_port = htons(<portToConnectToServer>);
len = sizeof(address);

int result = connect(sockfd, (struct sockaddr *)&address, len);

Sur le côté serveur-je vérifier l'Adresse IP du client et j'ai toujours 127.0.0.1

Je veux changer quelque chose de différent.

Utilisation bind() avant connect() pour définir l'adresse locale et/ou le port de la prise de courant. Mais si le client et le serveur sont sur des machines différentes, l'adresse du client ne peut jamais être 127.0.0.1.
Comment êtes-vous de vérifier que le client de l'adresse?
char *ip = inet_ntoa(client_address.sin_addr); printf("Adresse Ip -> %s\n", pi);
Vous voyez 127.0.0.1 parce que vous utilisez votre client et serveur sur la même machine. L'adresse IP de votre ordinateur est affecté par le routeur auquel vous êtes connecté. Pourquoi voulez-vous une adresse IP différente?
Je veux tester les threads, de sorte que chaque client se connecte quand un thread est créé, donc j'ai besoin de clients avec des adresses IP différentes pour voir ce qui se passe

OriginalL'auteur Alex | 2013-03-28

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *