thuillez
Messages postés32Date d'inscriptionmardi 20 juillet 2004StatutMembreDernière intervention24 août 2008
-
24 août 2008 à 09:16
thuillez
Messages postés32Date d'inscriptionmardi 20 juillet 2004StatutMembreDernière intervention24 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.
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 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.
cs_wizad
Messages postés355Date d'inscriptionsamedi 30 octobre 2004StatutMembreDernière intervention14 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)
thuillez
Messages postés32Date d'inscriptionmardi 20 juillet 2004StatutMembreDernière intervention24 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.