Tester si connection en client et serveur est active

attilalehuns Messages postés 6 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 4 juin 2010 - 24 févr. 2010 à 01:55
attilalehuns Messages postés 6 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 4 juin 2010 - 27 févr. 2010 à 02:03
Bonjour,
Je débute en C# et je tente de savoir quelle commande je peux utiliser pour savoir si ma connexion entre mon client et mon serveur est active ou pas, afin de pouvoir agir en conséquence.

Merci d'avance

5 réponses

krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
24 févr. 2010 à 10:23
Salut

Tu t'y connectes de quelle façon ? On peut avoir le bout de code correspondant à ta connexion ?

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
0
attilalehuns Messages postés 6 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 4 juin 2010
24 févr. 2010 à 10:40
J'essaie de me connecter avec un timer toute les x secondes si la connexion n'est pas déjà établie.
Dans le cas où la connexion entre le serveur et le client est active je voudrais qu'il n'exécute pas ce bloc de code.
Ce que je ne sais pas c'est qu'elle est la condition qui me permettrait de savoir si il est déjà connecté au serveur?

coté client:
        private void timer1_Tick(object sender, EventArgs e)
        {
            if () // ICI JE NE SAIS PAS QUOI UTILISER POUR TESTER MA CONNEXION.
            {
                try
                {
                    ushort port =  5555;
                    TcpClient ClientSocket = new TcpClient("127.0.0.1", port);
                    NetworkStream ns = ClientSocket.GetStream();
                    MessageBox.Show("Connexion établie");
                }
                catch
                {
                    MessageBox.Show("Connexion non établie");
                }
            }
        }


coté serveur:
        public void Ecoute()
        {
            try
            {
                ushort port  = 5555;
                IPAddress localAddr = IPAddress.Parse("127.0.0.1");
                TcpListener SocketEcoute = new TcpListener(localAddr, port);
                SocketEcoute.Start();
                Socket MySocket = SocketEcoute.AcceptSocket();
                MessageBox.Show("Connexion établie");
            }
            catch
            {
                MessageBox.Show("Erreur");
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            Thread MyThread = new Thread(new ThreadStart(Ecoute));
            MyThread.Start();
        }
0
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
24 févr. 2010 à 11:33
Il faut que tu gardes une référence à ton TcpClient. Celui-ci a une propriété Connected qui te renvoie un booléen.

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
0
attilalehuns Messages postés 6 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 4 juin 2010
27 févr. 2010 à 01:55
Merci pour ta réponse.

En cherchant, je suis tombé sur cette documentation: ici, mais apparemment je dois mal l'utiliser car ça ne marche pas chez moi.
Dans l'exemple il n'y a que le "get" mais si je ne met pas le "set" il me génère une erreur: "must declare a body because it is not marked abstract or extern"

public bool Connected
        {
            get;
            set;
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
    
            if (!Connected==true)
            {
                try
                {
                    ushort port = 5555;
                    TcpClient ClientSocket = new TcpClient("127.0.0.1", port);
                    NetworkStream ns = ClientSocket.GetStream();
                    MessageBox.Show("Connexion établie");
                }
                catch
                {
                    MessageBox.Show("Connexion non établie");
                }
            }
        }
0

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

Posez votre question
attilalehuns Messages postés 6 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 4 juin 2010
27 févr. 2010 à 02:03
ps: Le problème c'est que ma condition est toujours juste.
Même si la connexion entre mon client et mon serveur est déjà active, il m'exécute mon bloc de code.
Ce que je veux c'est qu'il l'exécute si il n'y a pas de connexion entre mon client et mon serveur et qu'il ne l'exécute pas si il est déjà connecté avec.

merci d'avance
0
Rejoignez-nous