2009-07-09 6 views
1

Quelqu'un peut-il me diriger vers un tutoriel sur la façon de configurer une méthode ping en utilisant des sockets C? En utilisant le guide d'beej, j'ai pu établir une connexion entre deux appareils, mais maintenant je veux installer une méthode qui pings pour tous les périphériques disponibles avant de commencer une connexion réelle. Je n'ai jamais fait cela auparavant, alors vous feriez quelque chose comme configurer une socket multicast pour diffuser un paquet de données vide et ensuite le récepteur de ce paquet vide le remplir avec leur adresse IP et retourner ce paquet de données maintenant plein afin que vous avoir l'adresse pour démarrer la connexion? Tout guide/aide serait apprécié!C Sockets Commande Ping?

+0

Vous voulez ping, qui est utilise le protocole CIMP, ou une émission UPD? –

+0

ICMP Désolé, http://en.wikipedia.org/wiki/Internet_Control_Message_Protocol –

Répondre

2

La plupart des piles IP actuelles ne répondent pas à une requête ping vers une adresse de diffusion. La fonctionnalité a été abusée pour les attaques par déni de service.

La mise en œuvre d'une véritable mise en œuvre ping ne sera pas facile, je vous suggère d'utiliser une lib existante: http://www.kernelthread.com/projects/hanoi/html/icmp.html

Mais vous devrez itérer manuellement tous les Addrs IP sur votre sous-réseau pour les obtenir répondre.

+1

D'accord. Pas besoin de réinventer la roue. –

+0

Eh bien, cela semble être la seule façon de pouvoir faire ce que je veux pour le moment, à moins que je ne puisse penser à autre chose. Ce que je fais essentiellement, c'est prendre plusieurs appareils iPod touch et créer une configuration informatique distribuée. L'idée est pour un iPod d'être en mesure de ping pour les serveurs (configuration sur les autres touches iPod) et si elles sont disponibles (à portée), puis leur envoyer une tâche à faire. J'utilise des sockets C (ne parlons même pas de CFNetwork, j'ai eu assez de problèmes avec ce framework stupide lol) pour configurer les connexions. Des idées sur la façon de ping sans itération à travers les adresses IP sur mon sous-réseau? –

+0

Plutôt que d'avoir l'iPod ping sur chaque périphérique, pourquoi ne pas avoir diffusé un paquet de chaque périphérique en indiquant qu'il est disponible? –