jocou
Messages postés52Date d'inscriptionlundi 5 janvier 2004StatutMembreDernière intervention19 novembre 2013 23 déc. 2010 à 11:37
Salut
En fait, je teste sur un réseau local et j'utilise des paramètres utilisateurs pour connaitre le nom du poste distant : le client a le nom du serveur et le serveur le nom du client ...
J'ai bien vu sur le Net qu'il existait 2 méthodes (tcp ou socket) : ne sachant pas laquelle choisir, j'ai pris celle qui me paraissait la plus simple
Mayzz
Messages postés2813Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention 2 juin 202028 23 déc. 2010 à 11:50
Ah ! Donc si je comprends bien dans le client tu entre le nom du poste cible ?
Voila pourquoi cela ne fonctionne pas. Pour la connexion le protocole TCP utilise le protocole IP (en fait c'est une couche supérieure). Donc pour la communication TCP identifie les postes par leur adresse IP et non par leur nom réseau.
Au pire des cas, tu peux spécifier un nom de domaine comme vbfrance.com si celui-ci est inscrit chez un registar uniquement, car le TCPListeneur enverra alors une requête DNS permettant de résoudre l'adresse IP associée à ce nom de domaine.
Mais ne pas confondre un nom d'ordinateur local avec un nom de domaine ce sont deux choses tout à fait différentes.
Donc il ne te reste qu'à saisir sur ton client l'adresse 127.0.0.1 pour établir la connexion.
Attention cette adresse ne fonctionne que si le serveur et le client se trouvent sur le même poste. Dans le cas contraire il faut utiliser les IP des interfaces réseaux qui relient les machines.
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Mayzz
Messages postés2813Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention 2 juin 202028 23 déc. 2010 à 15:18
Heu... Attend je comprends plus trop, ce message d'erreur est différent de celui posté plus haut ? Qu'as-tu changé entre temps ?
Sinon niveau pare-feu, t'as ouvert le port sur ton routeur et aussi sur la machine cible ?
L'adrese IP est de classe A plutôt rare pour un réseau local à moins que tu ne soit dans un résau d'entreprise dans ce cas il est possible qu'il y ai plusieurs pare-feu, passerelles et routeurs.
Aussi il est recommandé d'utiliser des ports sup. à 49152 pour les programmes perso.
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Mayzz
Messages postés2813Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention 2 juin 202028 23 déc. 2010 à 15:50
Oui si tu es dans une boite qui à un réseau avec des adresse de classe A j'imagine que celui-ci n'est pas petit, mais ca il n'y a que toi pour le confirmer.
Autre chose, comme je te l'ai dis l'adresse 127.0.0.1 est une adresse spécifique. Si tu veux que ton serveur (démon) se mette sur écoute utilise l'adresse de sont interface le reliant au réseau soit 10.43.241.5.
Ou alors pour vérifier en local, met le programme serveur et le programme client sur le même poste et utilise l'adresse 127.0.0.1 pour les deux ce qui simulera un comportement réseau.
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Je ne comprends pas ce qui se passe :
Dans mon programme, les 2 ports client et serveur sont initialisés à 49153
Quand le client contacte le serveur, la trace semble montrer que le port source a été transformé de 49153 à 2587 ???
Mayzz
Messages postés2813Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention 2 juin 202028 23 déc. 2010 à 18:51
Non pas du tout.
En fait lors ce que tu initialise une connexion TCP cliente vers l'adresse et le port d'un serveur, il faut bien que ce client communique aussi via un port ?
Et ce port client ne peut être le même que celui appelé pour la connexion car ce qui voudrait dire que lors ce que tu ouvres une page web pour aller sur internet (et que tu te connect au port 80 du serveur) le port 80 de ton interface réseau serait lui aussi utilisé. Du coup celui qui installerait un serveur web comme apache ou ISS ne pourrait plus naviguer sur le net.
Alors pour palier à cela le socket client se sert d'un port aléatoire inutilisé.
Pour ton problème. Wireshark ne dis rien. Déjà on ne peu pas deviner étant donnée le peu d'infos affichés.
As-tu essayé comme je te l'ai dis en local ?
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Mayzz
Messages postés2813Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention 2 juin 202028 25 déc. 2010 à 11:21
Oui si t'es en entreprise il est probable qu'il y ai un ou plusieurs parefeu ce n'est pas la solution idéale pour tester ton programme. Je te conseille de le développer en local dans un premier temps et de demander à ton administrateur réseau de débloquer le port lors ce que tu souhaiteras utiliser le logiciel au boulot.
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Modifié par JèanClude le 30/09/2015 à 19:43
ça fonctionne a merveille !