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
A voir également:

5 réponses

krimog
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Membre
Dernière intervention
14 février 2015
51
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
51
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