IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Client et Serveur, marche et marche pas ?!?


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 91
    Par défaut Client et Serveur, marche et marche pas ?!?
    Bonjour, voila je me suis mis au reseau hier et j'ai fait ces codes. En locale avec l'ip 127.0.0.1 sa marche parfait, en reseau via internet avec mon autre ordi sa marche aussi et quand je le passe a quelque exterieur a chez moi sa ne marche pas.

    Pourtant mes 2 ordi ne sont pas relié par reseau, je ne possede pas de routeur. La seul chose est qu'un ordi est relié a la ma box par eternet et l'autre par wifi, mais je ne pensse pas que sa suffisse pour creer un reseau.

    Serveur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
     
    using System.Net.Sockets;
    using System;
    using System.IO;
    using System.Threading;
     
    public class ServeurConsole
    {
    	public static void Main ()
    	{
    		int Port = 5555;
     
    		TcpListener Ecoute = new TcpListener(Port);
     
    		try
    		{
    			Ecoute.Start();
    			Console.WriteLine("En attente d'un client...");
     
    			while (true)
    			{
    				TcpClient Client = Ecoute.AcceptTcpClient();
    				Console.WriteLine("Vous étes connecté");
     
    				new Thread(new ThreadStart(new Gestion(Client).Run)).Start();
    			}
    		}	catch {	Console.WriteLine("Impossible de se connecté !");	}
    		Ecoute.Stop();
    	}
    }
     
     
    public class Gestion
    {
    	private TcpClient Client;
     
    	public Gestion(TcpClient Client)
    	{
    		this.Client = Client;
    	}
     
    	public void Run()
    	{
    		try
    		{
    			StreamWriter OUT = new StreamWriter(Client.GetStream());
    			OUT.AutoFlush = true;
    			string Demande = null;
     
    			//Pour lire les messages recu
    			Thread Lire = new Thread(new ThreadStart(Reception));
    			Lire.Start();
     
    			while(true)
    			{
    				Demande = Console.ReadLine();
    				OUT.WriteLine(Demande);
    			}
    		} catch { }
    	}
     
    	public void Reception()
    	{
    		StreamReader IN = new StreamReader(this.Client.GetStream());
    		string Reponsse = null;
     
    		try
    		{
    			while ((Reponsse = IN.ReadLine()) != null)
    			{
    				Console.WriteLine("-> "+ Reponsse);
    				Thread.Sleep(100);
    			}
    		}
    		catch { Console.WriteLine("Le client vient de se deconnecter"); }
    	}
    }
    Client :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
     
    using System;
    using System.Net.Sockets;
    using System.IO;
    using System.Threading;
     
    public class ClientConsole
    {
    	private TcpClient Client;
     
    	public ClientConsole(TcpClient Client)
    	{
    		this.Client = Client;
    	}
     
    	public static void Main()
    	{
    		//string Serveur = "192.168.1.2"; //192.168.0.244
    		string Serveur = "xpsp2-4a5be8c98";
    		int Port = 5555;
     
    		string Demande = null; // demande du client
     
    		try
    		{
    			Console.WriteLine("Tentative de connection au serveur...");
     
    			TcpClient Client = new TcpClient(Serveur, Port);
    			StreamWriter OUT = new StreamWriter(Client.GetStream());
    			OUT.AutoFlush = true;
     
    			Console.WriteLine("Vous étes connecté");
     
    			//Pour lire les messages recu
    			Thread Lire = new Thread(new ThreadStart(new ClientConsole(Client).Reception));
    			Lire.Start();
     
    			//Pour ecrire
    			while (true)
    			{
    				Demande = Console.ReadLine();
    				OUT.WriteLine(Demande);
    			}
    		} 
    		catch
    		{
    			Console.WriteLine("Impossible de se connecter au serveur");
    			Console.Read();
    		}
    	}
     
    	public void Reception()
    	{
    		StreamReader IN = new StreamReader(this.Client.GetStream());
    		string Reponsse = null;
     
    		try
    		{
    			while ((Reponsse = IN.ReadLine()) != null)
    			{
    				Console.WriteLine("-> "+ Reponsse);
    				Thread.Sleep(100);
    			}
    		}
    		catch { Console.WriteLine("Le serveur vient de se deconnecter"); }
    	}
    }
    Bon je sait que c'est pas terrible comme code mais je veut juste faire un test avec 1 personne et 1 serveur sous console pour le moment et faire beaucoup mieux apres. Probleme c'est que meme quand je veut faire simple sa marche pas, et je voit vraiment pas le probleme.

    Je compte sur vous pour m'aider, merci d'avance

  2. #2
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    348
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 348
    Par défaut
    problème de firewall?

    Qui héberge le serveur? toi? Les ports de ta box sont ouverts?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 91
    Par défaut
    Oui c'est moi qui l'heberge puisque pour l'instant je m'entraine, moi et mon pote ou a virer nos firewall mais sa ne marcher pas. Par contre, est ce que les ports de la box sont ouvert Je n'y avait pas pensser du tout. Si ce n'est pas le cas, comment peut on faire (je possede une alice box). Le probleme doit surement venir d'ici (ou sinon quel port non occuper est disponible sur la box pour verifier si le probleme vient de la)

  4. #4
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    348
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 348
    Par défaut
    Je ne sais pas exactement comment la Alicebox est configurée.
    Mais à mon avis, c'est standard.

    Tu dois surement pouvoir accéder à l'interface d'administration par ton navigateur, en tapant l'adresse 192.168.0.1 ou 192.168.1.1 ou pas loin de ça.

    De là, tu peux la configurer, ouvrir des ports fermer d'autres ect.

    Si l'adresse n'est pas une des deux au dessus, regarde depuis un de tes pc l'adresse de la passerelle internet ou du routeur (si t'as plusieur pc dessus elle doit être en mode routeur).

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 91
    Par défaut
    Re bonjour,

    je me suis documenter et j'ai fait des tests. Effectivement ma box est en mode routeur, et le fait que je puisse communiquer avec mon autre ordi vient du fait que l'ip 192.168.0.2 est mon ip interne. Donc sa ne marche pas de l'exterieur.

    J'ai ouvert le port utiliser (5555) de ma box mais bien evidament sa ne marche pas. Il me faudrait l'adresse ip qui permet au autre de se connecter a mon serveur (qui est en local).

    j'ai essayer l'ip a ce site : http://checkip.dyndns.org/ mais sa ne marche pas. Donc voila il me faudrait trouver le moyen de connaitre mon ip "externe".

    Encore merci a toi Sunsawe qui m'aide beaucoup et qui repond rapidement ^^

  6. #6
    Membre averti
    Inscrit en
    Octobre 2002
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Octobre 2002
    Messages : 25
    Par défaut
    Il faut faut que tu redirige le port vers ton PC.

    sur ton routeur, tu doit dire port XXXX vers port XXXX de l'IP XXX.XXX.XXX.XXX


Discussions similaires

  1. [CS3] video flv, marche en local pas sur serveur distant
    Par mag_sergio dans le forum Dreamweaver
    Réponses: 12
    Dernier message: 11/06/2008, 17h20
  2. Réponses: 2
    Dernier message: 08/04/2008, 16h29
  3. Connexion en local au serveur FTP ne marche pas.
    Par pcsystemd dans le forum Administration système
    Réponses: 1
    Dernier message: 19/09/2007, 09h09
  4. Réponses: 1
    Dernier message: 27/05/2007, 15h43
  5. Réponses: 1
    Dernier message: 08/11/2006, 21h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo