Impossible de connecter 2 ordinateur par Tcp

thuillez Messages postés 32 Date d'inscription mardi 20 juillet 2004 Statut Membre Dernière intervention 24 août 2008 - 24 août 2008 à 09:16
thuillez Messages postés 32 Date d'inscription mardi 20 juillet 2004 Statut Membre Dernière intervention 24 août 2008 - 24 août 2008 à 16:25
Bonjour à tous,
J'imagine que cette question (et la reponse) doit etre toute bete mais malgre avoir chercher avec un ami (qui s'appelle google) et sur differents sites je n'arrive toujours pas à resoudre mon probleme.

J'ai d'un côté le serveur qui entre autre fait :

IPAddress localAddr = IPAddress.Parse(iPAddress);
ListenerTcp = new TcpListener(localAddr, port);
ListenerTcp.Start();
// Pointeur asynchrone
IAsyncResult iar = null;
//Attente du prochain message
iar = ListenerTcp.BeginAcceptTcpClient(new AsyncCallback(AcceptTcpClientCallback), this);

Et du coté client on a:

 TcpClient client = new TcpClient(iPAddress, port);
NetworkStream networkStream = client.GetStream();

Mais la création du TcpClient renvoi :"Aucune connexion n'a pu être établie car l'ordinateur cible l'a expressément refusée".

Sur les diferents forums que j'ai vu on parle de :
il suffit aparamant de creer une IP via un tableau , et de la donner a la méthode beginaccept .(avec listen avant).

Ou encore de probleme de firewall, or je n'ai que celui d'xp, mon programme fait partis des exceptions et j'ai aussi ajouté un port ouvert.Je n'ai pas non plus de proxy.

Quand j'utilise mon ip interne (192.168.1.57) ca fonctionne bien, mais des que je met l'adresse ip publique (que je trouve generalement sur monip.org) le probleme que je decris ci-dessus apparait.
J'ai une adresse ip dynamique et j'ai une livebox chez Orange.

Quelqu'un pourait t'il m'eclairer pour ce probleme qui doit surement simple car la plupart des personnes qui utilisent les socket y arrivent. Surtout que la source que j'utilise vient d'un site qui a l'air serieux.

Merci à ceux qui s'interessent à ce problème.

@+

6 réponses

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
24 août 2008 à 10:33
Salut,

Si le routeur (ici la LiveBox) ne dispose pas d'une règle lui disant où envoyer les packets (vers la machine 192.168.1.57 en l'occurence) pour le port/protocole, il ne sait quoi en faire et refuse tout simplement la connexion.

/*
coq
MVP Visual C#
CoqBlog
*/
0
thuillez Messages postés 32 Date d'inscription mardi 20 juillet 2004 Statut Membre Dernière intervention 24 août 2008
24 août 2008 à 12:10
Comment faire alors pour dire a la livebox de laisser entrer les packets et de les envoyer a mon application ?
0
cs_wizad Messages postés 355 Date d'inscription samedi 30 octobre 2004 Statut Membre Dernière intervention 14 avril 2009
24 août 2008 à 12:14
J'ajouterais à la réponse de coq :
Il me semble (c'était le cas à une époque pas si lointaine) qie la livebox ne supporte pas une connexion en "Loopback" => quand tu essai de joindre le réseau local depuis une machine interne mais en utilisant l'ip externe (ex : tu as un poste et un serveur dérrière ta livebox, tu cherche à joindre le serveur depuis la poste en utilisant l'ip internet. Même si le routage est configuré correctement sur la livebox elle va systématiquement de jeter)
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
24 août 2008 à 14:14
Je ne sais pas comment ca se passe sur la livebox, mais tu dois bien avoir une page de l'interface qui te permet de faire du routage de ports non ?

Mx
MVP C# 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
thuillez Messages postés 32 Date d'inscription mardi 20 juillet 2004 Statut Membre Dernière intervention 24 août 2008
24 août 2008 à 15:10
Merci pour vos réponses, je vais aller voir l'aide de la livebox.
Je vous tient au courant
0
thuillez Messages postés 32 Date d'inscription mardi 20 juillet 2004 Statut Membre Dernière intervention 24 août 2008
24 août 2008 à 16:25
J'ai trouvé comment faire (grâce a vous bien sûr) et ça fonctionne super bien.

A l'intention de ceux qui auraient le même problème, ce n'est pas forcement la meilleure méthode mais elle a le mérite de fonctionner:
Sur votre navigateur internet aller à l'adresse http://192.168.1.1/ (mdp et utilisateur = "admin")
Ensuite allez dans Configuration/Avancée/Routeur ;dans la zone "Routeur - NAT" faites Ajouter. Service: Nom que vous voulez Protocol: TCP (pour moi) Ports interne et externe: celui que vous utilisez dans votre application. Et voila.

Merci à tous pour vos infos très utiles en espérant que ça puisse servir a quelqu'un.

@+
0
Rejoignez-nous