Bonjour ou bonsoir, depuis un bon moment je travail sur un projet qui nécessite un serveur.
Au début j'utiliser MySQL qui plus j'avance, plus ça devient compliquer à gérer connexion déconnexion.
La connexion se passe bien, mais le soucis c'est que si la personne n'est plus connecter à internet, on voit toujours connecté.
Alors j'utilise un serveur qui a quelques lignes fonctionne pour savoir qui est connecté.
Mais j'aimerais allez plus loin car il dit qui est connecté le pseudo le mdp et l'ip afin de vérifier sur la BDD si le pseudo et le mdp correspondent.
Et de voir la vrai déconnexion.

Voici le code côté 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
private void button1_Click(object sender, EventArgs e)
        {
            Home h = new Home();
 
            //ConnexionServeur();
            ConnexionTCPServeur();
        }
 
        //---------------------------------------TCPClient---------------------------------------
        private void ConnexionTCPServeur()
        {
            TcpClient tcpclient = new TcpClient("127.0.0.1", 8080);
            Socket SocketClient = tcpclient.Client;
 
            NetworkStream FluxNS = new NetworkStream(SocketClient);
            StreamReader FluxReader = new StreamReader(FluxNS);
            StreamWriter FluxWriter = new StreamWriter(FluxNS);
 
            //Envoi les id et mot de passe
            string hostname = Dns.GetHostName();
            IPHostEntry host;
            host = Dns.GetHostEntry(hostname);
            byte[] Info = System.Text.Encoding.Default.GetBytes(this.txtPseudo.Text + ":" + this.txtPassword.Text + ":" + host.AddressList[1].ToString());
            SocketClient.Send(Info);
 
            //int message;
            //message = FluxReader.Read();
            //byte[] byteRecu = new byte[99];
            //var str = System.Text.Encoding.Default.GetString(byteRecu);
            //MessageBox.Show(str);
 
            byte[] Message = new byte[99];
            SocketClient.Receive(Message);
            var str = System.Text.Encoding.Default.GetString(Message);
            MessageBox.Show(str);
        }
Puis voici le code côté 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
static void Main(string[] args)
        {
            TcpListener tcplistener = new TcpListener(IPAddress.Any, 8080);
            tcplistener.Start();
            while (true)
            {
                Socket SocketClient = tcplistener.AcceptSocket();
                Console.WriteLine("Client Serveur Connecté");
                NetworkStream FluxNS = new NetworkStream(SocketClient);
                StreamReader FluxReader = new StreamReader(FluxNS);
                StreamWriter FluxWriter = new StreamWriter(FluxNS);
 
                byte[] Infos = new byte[99];
                SocketClient.Receive(Infos);
                var str = System.Text.Encoding.Default.GetString(Infos);
                Console.WriteLine(str);
 
                byte[] message = System.Text.Encoding.ASCII.GetBytes("Serveur relié");
                SocketClient.Send(message);
                Console.WriteLine("Envoi un flux au client...");
            };
        }
J'aimerais savoir comment dire aux client que le pseudo et le mdp et correct, sachant que je vais utiliser ce site : db4free.net
Mais je pense le créer directement sur mon pc, lequel décision prendre? Est-ce qui a une autre solution?

J'avais fait un autre code où j'envoi un boolean mais hélas le client reçoit un nombre.

Merci d'avance.
Si vous voulez qu'on discute sur le tchat dite moi l'heure que vous pourrez rejoindre.