Bonjour,
je souhaite développer un serveur (le client est déjà codé). Mon serveur doit envoyé une image au client.

La connexion avec le client s'effectue sans probleme, il m'envoit le port et qu'elle image il souhaite recevoir:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
           TcpListener server = new TcpListener(IPAddress.Parse("127.0.0.1"), 11113);
            server.Start();
            byte[] Buffer = new byte[256];
            string message;
            Console.WriteLine("Attende de connexion...");
 
            TcpClient client = server.AcceptTcpClient();
            Console.WriteLine("Connecté !");
 
            NetworkStream stream = client.GetStream();
            int nbLus = stream.Read(Buffer, 0, Buffer.Length);
 
            message = Encoding.ASCII.GetString(Buffer);
Ensuite je dois lui envoyé l'id de l'image, la taille de l'image et ensuite l'image:

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
 
 TcpClient clientDonnees = new TcpClient();
            clientDonnees.Connect("127.0.0.1", portD);
            Console.WriteLine("Connecté données !");
 
            NetworkStream NS = clientDonnees.GetStream();
            BinaryWriter BW = new BinaryWriter(NS);
 
            BW.Write((string)idImage);
            BW.Write('\n');
 
            FileStream fs = new FileStream("image.bmp", FileMode.Open, FileAccess.Read);
            BinaryReader BR = new BinaryReader(fs);
            //---------------------Taille du fichier
            FileInfo _file_info = new FileInfo("image.bmp");
 
            BW.Write((long)_file_info.Length);
            BW.Write('\n');
 
            //------------------envoie du fichier
            byte[] _buff_end;
            for (long i = (_file_info.Length / 1480); i > 0; --i)
                BW.Write((byte[])BR.ReadBytes(1480));
 
            if ((_file_info.Length % 1480) != 0)
            {
                _buff_end = new byte[_file_info.Length % 1480];
                BW.Write((byte[])BR.ReadBytes(_buff_end.Length));
            }
je me retrouve avec une erreur comme quoi la connexion a été interrompue par le client.
Ma question est; comment utilise t'on les tcp client ou tcp listenner, dans quel cas on doit utiliser l'un ou l'autre ou les deux.
merci