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:
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 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);
je me retrouve avec une erreur comme quoi la connexion a été interrompue par le 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 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)); }
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
Partager