j'étais en train d'apprendre (en C#) la communication réseau (avec TCP), et je me heurte à un petit problème. En effet, lorsque j'ouvre le serveur et le client sur le même ordinateur, le client arrive à se connecter au serveur sans problème (j'ai testé avec l'adresse IP "127.0.0.1" et mon IP réelle, récupérée par la méthode suivante :
Ensuite, j'ai décidé d'ouvrir le client sur un autre ordinateur (toujours chez moi) (ainsi cette fois j'ai utilisé la méthode citée plus haut pour récupérer l'adresse IP, je n'ai pas utilisé l'adresse "127.0.0.1"), or le client ne parvient pas à se connecter (j'ai une erreur du style "La connexion n'a pas pu s'établir car l'hôte distant l'a expressément refusé" ou quelque-chose comme ça). Je ne sais donc pas comment faire pour que la connexion puisse s'effectuer. Faut-il ouvrir des ports ou faire une autre manip' ?
C'est ce que j'ai fait. En effet, la méthode GetIP() indiquée dans mon premier message retourne "192.168.1.128". J'ai donc instancié mon IPEndPoint de cette manière :
static IPEndPoint iep = new IPEndPoint(IPAddress.Parse(GetIP()), 8080);
qui revient à écrire
static IPEndPoint iep = new IPEndPoint(IPAddress.Parse("192.168.1.128"), 8080);
Regarde du côté du firewall serveur si le port 8080 est bien ouvert en TCP, et sur la box/routeur aussi (je dirais que la box ne devrait pas bloqué vu que c'est dans le même réseau, mais je suis pas spécialiste alors on sait jamais)
Il y a 10 catégories de personnes : celles qui savent compter en binaire et celles qui ne savent pas.
J'ai testé avec d'autres ports et j'en suis venu à utiliser le port 1234 (ce nombre me passait par la tête) (évidemment ça ne fonctionnait toujours pas). J'ai ouvert, sur le PC où l'application serveur est ouverte, le port 1234 mais ça ne fonctionne toujours pas (j'ai fait de même sur la box).
Par contre, j'ai remarqué une chose assez étrange. Quand j'utilise le port 80, le client arrive à se connecter (il m'affiche un petit "Done !" que j'ai ajouté après le clientSocket.Connect(IEP)), par contre quand je regarde sur mon serveur, il n'a détecté aucun client (il est censé m'afficher "Client detected !" puis remettre le message "Waiting for client...", or il n'affiche rien...).
C'est ce que j'ai fait. En effet, la méthode GetIP() indiquée dans mon premier message retourne "192.168.1.128". J'ai donc instancié mon IPEndPoint de cette manière :
static IPEndPoint iep = new IPEndPoint(IPAddress.Parse(GetIP()), 8080);
qui revient à écrire
static IPEndPoint iep = new IPEndPoint(IPAddress.Parse("192.168.1.128"), 8080);
Comme expliqué plus haut, dans l'instanciation de mon IPEndPoint, dans le paramètre correspondant à l'adresse IP, j'ai remplacé
IPAddress.Parse("129.168.1.128")
par
IPAddress.Parse(GetIP())
(sachant que la méthode GetIP() me retourne mon adresse IP (ici "129.168.1.128")). Par ailleurs, je ne pense pas que le problème vienne de là, sachant que lorsque je lance le client sur l'ordinateur où j'ai précédemment lancé le serveur, celui-ci arrive à se connecter au serveur. Le problème intervient lorsque je lance le client sur un autre ordinateur que celui où est ouvert le serveur.
Je pense aussi que c'est ça, ta fonction GetIP récupère l'adresse locale avec cette fonction : Dns.GetHostName()
A la place il faudrait mettre le hostname de ton serveur (ou plus simple, tu vires cette fonction qui ne sert pas à grand chose ici, tu crées une variable avec ton IP serveur dedans et basta)
En fait je suis juste allé chercher cette fonction sur internet, ne sachant pas comment récupérer mon adresse IP. Du coup, où puis-je trouver l'IP du serveur ?
Si tu restes sous le même réseau. Un simple ipconfig (sur la machine serveur) pour trouver ton ip à la ligne : Adresse Ipv4 et ensuite l'inscrire en claire dans ton code pour te connecter à la machine serveur.
Ilidas-Gaming - Site e-commerce de vente de Clé CD - Recherche responsable marketing
Il y a 10 catégories de personnes : celles qui savent compter en binaire et celles qui ne savent pas.
Il y a 10 catégories de personnes : celles qui savent compter en binaire et celles qui ne savent pas.
Il y a 10 catégories de personnes : celles qui savent compter en binaire et celles qui ne savent pas.