Galmiza
Messages postés573Date d'inscriptionsamedi 16 novembre 2002StatutMembreDernière intervention 9 avril 2008
-
8 avril 2005 à 09:55
kirol
Messages postés1Date d'inscriptionvendredi 3 décembre 2004StatutMembreDernière intervention18 avril 2005
-
18 avril 2005 à 13:40
Salut,
J'ai téléchargé de nombreux tutoriaux sur les réseaux, les sniffers, les forgeurs de paquets etc, mais j'ai un petit problème:
Sniffer:
Sur mon ordinateur portable (assez récent), les sniffers fonctionnent.
Mais sur ma tour (plus vieille et équipée d'une carte réseau à 11€ de Montgallet) l'appel à recv() échoue alors que le bind() réussi.
Chat Client/Serveur
Depuis un même ordinateur, quand je lance des logiciels de chat en réseau, un pour le client, un pour le serveur, la connexion est établie et le chat fonctionne. "Normal, tu es sur le la même machine et aucune donnée ne transite par le réseau." me diriez-vous.
Oui mais lorsque je fais de même sur ma tour, celà ne fonctionne pas !
Donc bien évidement, il m'est impossible de communiquer avec ces logiciels entre le portable et la tour. IP respectives 1.1.204.98 et 1.1.204.97
Borgchat
Cependant avec le logiciel Borgchat, j'arrive à connecter les 2 ordinateurs, mais Borgchat met un certain temps (qq minutes) avant de reconnaître les 2 ordinateurs. Les messages transitent ensuite sans problèmes sur le réseau.
Windows aussi met qq temps avant de voir les 2 ordinateurs du même groupe de travail.
Sur la tour:
Bref, j'ai pensé qu'il fallait plusieurs tentatives de connection afin que celle-ci réussie, donc j'ai effectué des appels à recv() en boucle.
Mais le programme reste bloqué au 2ème appel et il est impossible de terminer le processus du programme. L'ordinateur fini par planter 5 minutes plus tard.
Bref, voici la liste de questions qui découlent du développement ci-dessus.
Quel est le problème de ma tour ?
Comment tester des connections (sachant que le bind() réussi) ?
Comment connecter en réseau 2 ordinateurs qui mettent du temps à se reconnaitre ?
Avez-vous eu déjà le même problème ? (on ne sait jamais)
Même si vous n'avez pas de réponses aux questions, je vous serez reconnaissant de me donner des informations que vous pensez que je n'ai pas; oui, il ne faut pas non plus que vous ayez lu tout ça pour rien !
Galmiza
Messages postés573Date d'inscriptionsamedi 16 novembre 2002StatutMembreDernière intervention 9 avril 20081 8 avril 2005 à 12:03
Merci pour ta réponse,
Je suis sous Windows XP SP2.
Je programme avec VC++ 6.0.
Les IP sont particulières car elles sont compatibles avec le réseau de l'école (pour mes tests, je ne branche ensemble que mes 2 ordinateurs).
Le groupe de travail n'est pas MSHOME mais BIRSE.
Masque sous-réseau: 255.0.0.0.
Mais les IP sont correctes car le logiciel de chat Borgchat permet de communiquer entre les 2 PC. Les protocoles TCP/IP sont installés et l'IPX aussi.
Le must serait d'avoir accès aux sources de Borgchat mais son auteur ne les diffuse pas.
Le problème principal est que la tour n'arrive pas à lancer les sniffers les plus simples et n'est pas capable de communiquer avec elle-même via le réseau, ni avec le portable grâce aux logiciels de chat "basiques". Seul borgchat leur permet d'échanger des données.
Ah oui. Le sniffer du portable (qui fonctionne) reçoit beaucoup de données de la tour, des données pour tout le réseau (IPdest = 1.255.255.255). Il intercepte aussi les paquets envoyés par Borgchat.
cleter
Messages postés92Date d'inscriptionmardi 25 février 2003StatutMembreDernière intervention15 mai 2006 8 avril 2005 à 16:31
Slt,
Pour ta tour, je pense que soit ta carte reseau deconne (regarde si tu
na pas une led orange ou rouge ki sallume sur ta carte reseau, ca
voudrai dir qu'il y a des conflits)
Galmiza
Messages postés573Date d'inscriptionsamedi 16 novembre 2002StatutMembreDernière intervention 9 avril 20081 9 avril 2005 à 15:24
Merci pour vos réponses,
J'avais déjà essayé tous firewalls désactivés, toujours le même problème.
En plus j'ai plusieurs fois réinstallé la carte réseau tellement elle était lente à la détente.
J'ai acheté cette carte uniquement pour mettre en réseau le portable et
la tour, jamais pour surfer (et je n'ai pas eu l'ocassion d'essayer le
net).
Actuellement, je ne peux pas avoir accès à la tour (changement
(temporaire)° de ville oblige). Par contre, je vais essayer les
programmes sur d'autres couples d'ordinateurs pour voir si le problème
sur la tour est purement dû à la carte réseau (ou peut-être aux
programmes eux-mêmes mais ça m'étonnerait car les programmeurs de
cppfrance sont les meill... bon ok j'arrête :-) ).
Cependant, le logiciel Borgchat (oui, je sais encore lui) arrive à
faire transiter des messages de la tour au portable et vice versa, donc
réussi à établir une connection.
En tous cas la carte réseau de la tour fonctionne (mal certes mais fonctionne).
Comment se fait-il qu'on ne puisse pas essayer plusieurs fois la fonction recv() ?
En fait si la première tentative échoue (-1 returned) la seconde bloque
l'ordinateur (sans pour autant monopoliser le processeur).
Je vais continuer de chercher de la doc sur les réseaux pour quitter le
statut de newbie dans le domaine (j'ai quand même dû chercher sur le
net la définition de certains de vos mots ).
cleter
Messages postés92Date d'inscriptionmardi 25 février 2003StatutMembreDernière intervention15 mai 2006 9 avril 2005 à 16:36
si la focntion recv() retourne -1, tu devrai faire un
WSAGetLasError() qui va te retourner le numero d'erreur
coresspondante!! une fois que tu l'a tu regarde dans l'msdn pour savoir
quesque c'est comme erreur.
Pour ce qui est de ton recv() qui suit, c normal que ca bloque, car
c'est fonction bloquante lol. elle attend de recevoir quelque chose, et
quand elle atten a n'a nullement besoin du proc. c'est pour ca que ca
le monopolise pas
Galmiza
Messages postés573Date d'inscriptionsamedi 16 novembre 2002StatutMembreDernière intervention 9 avril 20081 10 avril 2005 à 13:36
Je n'ai plus accès à la tour actuellement mais je suis presque sûr que le numéro d'erreur est le 10061; et dans MSDN:
WSAECONNREFUSED
10061
* Connection refused. : No connection could be made because the target computer actively
refused it. This usually results from trying to connect to a service
that is inactive on the foreign host—that is, one with no server
application running.
Bref, le problème vient très très certainement de la carte.
La fonction recv() est une fonction bloquante...
Le recv() en question est dans un sniffer on ne peut plus simple:
Si elle reussi, on peut l'appeler une autre fois et ainsi lister tous
les paquets IP qui passent par le réseau, par contre, si elle échoue,
un second appel bloque le programme.
Comment faire, dans le cas ou elle échoue, une autre tentative de
connection ? car dans le cas de la carte de la tour, il faut sans doute
l'essayer en boucle pour recevoir (enfin) un paquet.
cleter
Messages postés92Date d'inscriptionmardi 25 février 2003StatutMembreDernière intervention15 mai 2006 10 avril 2005 à 14:35
"No connection could be made because the target computer actively
refused it. This usually results from trying to connect to a service
that is inactive on the foreign host—that is, one with no server
application running."
Ca veu dire que c'est ton portable qui a refuser que ta tour se connecte. peu etre du a ton parfeu du portable.