récuperer l'adresse IP d'un client avec recvfrom - C - Programmation
Marsh Posté le 29-11-2010 à 16:00:44
Que contient le dernier paramètre (en l'occurence &tailleFrame) ?
Il faut l'initialiser avec la taille de expediteur.
Donc essayer :
Code :
|
Marsh Posté le 29-11-2010 à 16:20:15
Merci, maintenant l'adresse de l'expéditeur n'est pas vide, mais comment je la convertie pour récupérer l'adresse sous la forme 127.0.0.1 par exemple?
Marsh Posté le 29-11-2010 à 16:43:47
Utiliser inet_ntop() ou InetNtop() ou WSAAddressToString() ou inet_ntoa(). Voir la doc.
Marsh Posté le 29-11-2010 à 17:00:50
j'ai testé avec inet_ntoa et ntohs mais ca me retourne 127.0.0.1 alors que j'ai paramétré ca en 192.168.1.1, je vais tester tes fonctions. Merci d'avance.
Marsh Posté le 29-11-2010 à 17:30:23
Tout cela semble marché. Merci beaucoup.
Marsh Posté le 30-11-2010 à 11:56:14
Mieux vaut utiliser des interfaces indépendantes du protocole.
http://www.akkadia.org/drepper/userapi-ipv6.html
voire getnameinfo.
Marsh Posté le 01-12-2010 à 09:51:52
intéressant tout ca, je vais me plonger dedans. Merci
Marsh Posté le 29-11-2010 à 14:52:06
Bonjour tout le monde,
Je suis entrain de développer un serveur en C. Il récupère un messageenvoyé par un client en UDP, puis le traite et retourne le résultat généré.
Afin de pouvoir répondre au client, j'ai besoin de récupérer son adresse IP et son port d'écoute. Pour cela j'ai utilisé la fonction recvfrom, qui est sensé récupérer l'expéditeur et le contenu. Pourtant ma variable contenant l'adresse IP est toujours vide. Pourriez vous me dire se qui bloque?
Je précise que je reçois bien le message dans le buffer, la taille de la trame également, mais que expéditeur reste à 0.
Un peu, voir beaucoup d'aide serait la bienvenu.
---------------
En informatique, il n'y a pa de solution, que des problèmes :)