cs_elnk
Messages postés49Date d'inscriptionjeudi 8 novembre 2007StatutMembreDernière intervention23 mai 2010
-
16 mai 2010 à 12:19
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 2014
-
16 mai 2010 à 22:28
Bonjour, j'ai un serveur en application console qui fonctionne très bien ( cad le client se connecte bien ) à lui en local avec, les adresses type 192.168.x.x mais lorsque j essai de faire tourner(débogage) le serveur sur mon ip publique ca ne marche plus :/
Voici le code :
Console.WriteLine("Initialisation du serveur");
try
{
// Ip publique :
Uri url = new Uri("siteoujerecuperemonippublique");
WebClient client = new WebClient();
string ipAdressInternet = client.DownloadString(url);
IPHostEntry ipHost = Dns.Resolve(Dns.GetHostName());
localAddress = IPAddress.Parse(ipHost.AddressList[0].ToString()); //ipHost.AddressList[0];
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);
threadListener = new Thread(new ThreadStart(ListenToClient));
listener = new TcpListener(new IPEndPoint(localAddress, 999));
return true;
Concrètement il faudrait mettre ipAdressInternet à la place de localAdresse dans la ligne :
ThreadStart(ListenToClient));
listener = new TcpListener(new IPEndPoint(localAddress, 999));
mais ipAdresseInternet n'est pas de type IPAdresse alors je crois que c'est pour ca que ca ne marche pas mais je ne sais pas comment convertir mon ipAdressInternet qui est en string en IPAdresse :/
Si vous pouviez m'aider svp
Merci
A voir également:
500 - erreur interne au serveur. la ressource que vous recherchez présente un problème, elle ne peut donc pas être affichée.
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 16 mai 2010 à 22:28
Renvoyer ce qui rentre d'internet sur un port vers le réseau local sur un autre port (ou le même) sans spécifier l'adresse, faut voir au niveau du routeur les possibilités de configuration, mais ça doit être possible.
[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 16 mai 2010 à 13:57
le TCPListener n'écoutera jamais que sur la(es) adresse(s) locale(s) de la machine qui l'exécute.
Il n'est d'ailleurs pas nécessaire de préciser cette adresse. Ce n'est utile que lorsque tu possède, sur la machine qui fait serveur, plusieurs connexion réseau et que tu veux spécifier l'écoute sur une seule adresse bien précise.
Sinon, tu met le paramètre IPAddress.Any pour écouter sur toutes les cartes réseaux de ton serveur.
Ton problème se situe ailleurs. Ton serveur écoutera bien sur son ou ses adresses locales. Tes clients (hors réseau local) se connecteront bien, eux, sur ton adresse Internet publique.
Entre les 2, il te faut configurer ton routeur (ou ta box, si c'est elle qui fait routeur) pour que les connections entrantes, c'est à dire venant d'internet (ou au minimum celles sur le port spécifié) soient redirigé vers la machine qui héberge ton serveur sur ton réseau local
[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
cs_elnk
Messages postés49Date d'inscriptionjeudi 8 novembre 2007StatutMembreDernière intervention23 mai 2010 16 mai 2010 à 16:00
Ah! d'accord casy merci de ta réponse :)
Donc si j'ai bien compris, j'ai donc mon serveur chez moi sur mon pc qui écoute sur mon ip local, et mon client là en l'occurrence, dans ma maison de vacances je vais envoyer vers l ip publique où se trouve mon serveur!
Mais dans ce cas mise à part la configuration de mon router est-ce que je peux faire en sorte que mon serveur reçoive les sockets de mon client ?
Ça m'éviterai de configurer le router à chaque fois que je dois installer mon serveur quelque part :/
Merci,
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 16 mai 2010 à 16:26
c'est le routeur coté serveur que tu dois configuré. A partir du moment ou le serveur ne change pas de place, il n'y a pas lieu de reconfigurer le routeur.
Si par contre tu change le serveur de lieu, il faudra bien évidemment configurer le nouveau routeur derrière lequel il se trouvera.
Sauf exception, si ta box est configurée comme simple modem et donc à ce moment ton pc est directement relié à internet. Il n'y a pas de routeur dans ce cas là.
[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
cs_elnk
Messages postés49Date d'inscriptionjeudi 8 novembre 2007StatutMembreDernière intervention23 mai 2010 16 mai 2010 à 22:13
Oui, mais il n'y aurai pas un autre moyen ?
Par exemple si avec mon client j'envoie une socket sur l'ip publique, et qu'ensuite elle soit envoyer a tout les interfaces réseaux connecté au routeur ?
C'est à dire que du coup elle capterai seulement sur celle ou l'ip privé aurai le port adequat ?
Ou quelque chose qui m'éviterai de me depacer non ?