TCPClient et TCP Listenner
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:
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:
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