Bonjours

Mon programme envoye une image sous forme de Byte[] à travers un socket (TcpClient).
Mon serveur reçoit le début de l'image exactement comme il a été envoyé mais la fin en rempli de caractère null

Je fais comme suit (en gros) :
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
 
// --------------
// code client 
// --------------
m_memoryStream = new MemoryStream();
Bitmap ecran = (...);
ecran.Save(m_memoryStream, System.Drawing.Imaging.ImageFormat.Gif);
// m_stream est le stream d'un TcpClient
m_stream.Write(m_memoryStream.ToArray(), 0, m_memoryStream.Length);
 
// --------------
// code serveur
// --------------
Byte[] m_contenuCourant = Byte[...];
//m_stream est le stream d'un TcpListener
m_stream.Read(m_contenuCourant, 0, m_contenuCourant.Length)
MemoryStream ms = new MemoryStream(m_contenuCourant);
Bitmap bm = new Bitmap(ms);  // Erreur ici
L'erreur dit "Paramètre invalide" puisque la fin du fichier est corrompu.
Il est possible de passer de Bitmap > MemoryStream > Bitmap. Sur le même projet, ça fonctionne bien. J'ai des soucis lors de l'envoye par socket.

Quelqu'un a déjà vu ce problème avant ?

Merci beaucoup